مهدی 3 گزارش دادن ارسال شده در اردیبهشت 99 با سلام.سوال اول اینکه آیا متدی هست که مثلا 5 تا بیشترین از یه فیلدیو بگیریم باهاش مثلا اگه یه فیلد بازدید داشته باشیم در دیتابیس 5 تا رکورد پربازدید بهمون بده؟و سوال دوم اینکه فیلدی مثل id که autoincreament وخودش به طور خودکار عدد میده مثلا اگه ما 10 تا رکود داشته باشیم و5 تا آخریو حذف کنیم رکورد بعدی خودکار idش میشه 11 که این نظم شماره ها رو بهم میریزه آیا روشی هست که بعدیش به جای 11 بشه 6؟ نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در اردیبهشت 99 در مورد سوال اول از متد orderBy میتونید استفاده کنید و بیشترین بازدیدها رو بگیرید مثلا 5 مطلب که بیشترین بازدید رو داشتن به شکل زیر Articles::orderBy('نام ستون بازدید','desc')->take(5)->get(); // بجای نام ستون بازدید نام ستون جدول خودتون رو بذارید در مورد سوال دوم هم بعد از حذف میتونید یه کوئری با دستور زیر اجرا کنید تا شمارش رو از ادامه انجام بده ALTER TABLE table_name AUTO_INCREMENT=1 // بجای table_name نام جدول خودتون رو بذارید نقل قول Share this post Link to post Share on other sites
مهدی 3 گزارش دادن ارسال شده در اردیبهشت 99 مشکل اول درست شد اما در مورد دومی چطوری میشه یه کوئری خام تو دیتابیس زد؟ نقل قول Share this post Link to post Share on other sites
Special_One 57 گزارش دادن ارسال شده در اردیبهشت 99 در در ۱۳۹۹/۲/۲۰ در 18:36، مهدی گفته است : مشکل اول درست شد اما در مورد دومی چطوری میشه یه کوئری خام تو دیتابیس زد؟ منظورتون از کوئری خام یعنی چی یک مثال بزنید تا بهتر کمک کنیم. نقل قول Share this post Link to post Share on other sites
مهدی 3 گزارش دادن ارسال شده در اردیبهشت 99 مثلا بهش بگی که کوئری select * from user یا ALTER TABLE table_name AUTO_INCREMENT=1 رو اجرا کن نقل قول Share this post Link to post Share on other sites
Amir_Kh1984 17 گزارش دادن ارسال شده در اردیبهشت 99 برای اجرای کوئری مد نظر ابتدا یک migration ایجاد و آنرا migrate نمایید. سپس بدنه تابع ()up را پاک و به جای آن کد زیر را قرار دهید. public function up() { $statement = "ALTER TABLE table_name AUTO_INCREMENT = 1000"; \Illuminate\Support\Facades\DB::unprepared($statement); } بعد از اجرا، مقدار ستون id با مقدار اولیه 1000 شروع می شود. من در لاراول نسخه 6 کد بالا را آزمایش کردم و جواب گرفتم. برای اطلاع بیشتر می توانید به پیوند زیر مراجعه نمایید. https://stackoverflow.com/questions/34196045/set-auto-increment-field-start-from-1000-in-migration-laravel-5-1 در مورد کوئری اول هم می توانید از دستور زیر استفاده نمایید. $records = DB::select('select * from user'); var_dump(records); // using parameter $records = DB::select('select * from user where id = ?', [3]); var_dump(records); امیدوارم که این پاسخ ها مشکل شما را حل کرده باشد. موفق باشید. نقل قول Share this post Link to post Share on other sites