سهیل ملکی
3 سال پیش توسط سهیل ملکی مطرح شد
12 پاسخ

نمایش دیتا از دیتابیس

سلام دوستان خسته نباشید
ببخشید یه سایت ساختم که داخلش میشه موزیک رو گوش کرد و لایکش کرد
حالا بر اساس لایک میخوام موزیک ها رو از همدیگه جدا کنم و داخل دیتابیس بخش هاش اینجوریه :
نام موزیک - نام خواننده - فایل موزیک«برای آدرس دهی» - فایل کاور موزیک - لایک ها
خب حالا میخوام بر اساس لایک ده تا موزیک برتر رو جدا کنم میخواستم بدونم چجوریه ؟
مثلا ده تا موزیک برتر که بیشترین تعداد لایک رو دارن به عنوان موزیک برتر نمایش داده بشن.
میشه راهنمایی کنید چجوریه؟
ممنون .
@hesammousavi


ثبت پرسش جدید
علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش آپدیت شد
1

سلام
کد زیر میتونه کمکتون کنه :

$sql = "SELECT * FROM `*****` ORDER BY `like` DESC";
$Musics = $conn->query($sql);
$int = 1;
foreach ($Musics as $item) {
if($int <= 10){
// سلکت کردن موزیک ها
}
  ++$int;
}

Ali
@411proplayer 3 سال پیش آپدیت شد
1

سلام یه تیبل دیگه تو دیتابیست میسازی و اسمش رو مثلا میزاری لایک ها که توش ایدی اهنگ و یوزر هست که رابطه چند به چند لاراول هست
Song Model

public function likes()
    {
        return $this->belongsToMany(User::class, 'likes');
    }

User Model

public function liked()
    {
        return $this->belongsToMany(Song::class, 'likes');
    }
$mostLikedSongs = Song::withCount('likes')->orderByDesc('likes_count')->take(10)->get();

سهیل ملکی
تخصص : کارآموز برنامه نویسی
@soheilsmg 3 سال پیش مطرح شد
0

@411proplayer دوست عزیز من لاراول یاد ندارم آخه


Ali
@411proplayer 3 سال پیش مطرح شد
0

@soheil.maleki با چی کار میکنید ؟ کوئری sql میخواید ؟


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
-1

خوب با چی کار میکنید ؟
لاراول ؟ php ؟ چی
اگه منظورتون اینه که بدون هیچ زبان بک اندی بیاید و سیتم لایک رو پیاده سازی کنید باید بدونید که نمیشه


سهیل ملکی
تخصص : کارآموز برنامه نویسی
@soheilsmg 3 سال پیش مطرح شد
0

@411proplayer
آره دیگه من نمیدونم چطور میشه این دیتا ها رو فیلتر کرد تا بشه نمایششون داد


سهیل ملکی
تخصص : کارآموز برنامه نویسی
@soheilsmg 3 سال پیش مطرح شد
0

@gomnam با پی اچ پی کار میکنم


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش آپدیت شد
1

سلام
کد زیر میتونه کمکتون کنه :

$sql = "SELECT * FROM `*****` ORDER BY `like` DESC";
$Musics = $conn->query($sql);
$int = 1;
foreach ($Musics as $item) {
if($int <= 10){
// سلکت کردن موزیک ها
}
  ++$int;
}

علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
-1

و در نهایت به جای استفاده از php pure لاراول رو پیشنهاد میکنم


سهیل ملکی
تخصص : کارآموز برنامه نویسی
@soheilsmg 3 سال پیش مطرح شد
0

@gomnam خيلی ممنونم


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
-1

ممنون که به عنوان پاسخ برتر انتخاب کردید ...!
معمولا خیلی کار ها ، با یک تکه کد ساده حل میشه فقط باید خلاقیت به خرج بدید و این خلاقیت به مرور به دست خواهید آورد


نوید
تخصص : برنامه نویس Go / Django
@navids 3 سال پیش مطرح شد
3

@gomnam عزیز، خود mysql دستوری داره به نام limit و اگه اخر هر کوئری قرار بدی، برات 10 تا رو برمیگردونه، این کاری که شما کردی اگه 2000 تا موسیقی باشه، هر 2000 تا واکشی میشه و بعدش توی php سورت میکنه که اصلا عاقلانه نیست و باعث میشه هم سایت کند بشه و هم سرور down

$sql = "SELECT * FROM `*****` ORDER BY `like` DESC limit 10";

در نهایت پیشنهاد میکنم این مطلب رو بخونید:
https://www.mysqltutorial.org/mysql-limit.aspx


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
-1

@navids واقعا اطلاع نداشتم .
متشکر


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام