Thumbs up استفاده از دو الويت در mysql query

clip2ni

New Member
استفاده از دو الويت در mysql query

با سلام

دوستان عزيزم من مي خواهم از دو اولويت براي نمايش يك مشخصه استفاده كنم.

مثلا :


PHP:
                               $result= $db->sql_query("SELECT * FROM ".$prefix."_bbtopics WHERE topic_time ORDER BY topic_time DESC limit 0,30");


بر طبق كد بالا 30 عنوان آخر bbtopics بر اساس topic_time نمايش داده مي شوند.حالا من ميخواهم كاري كنم كه هم بر اساس topic_time باشد هم بر اساس topic_views باشد.در واقع مي خواهم پربازديدترين مطالب امروز سايت را نمايش دهم.

يكي از دوستان گفت مي توان كد بالا را بر حسب topic_views تنظيم كرد و بعد بهش فرمان داد كه فقط مطالب امروز را نشان دهد اما كدش را به ياد نداشت.

لطفا راهنمايي كنيد
 

ziXet

مدیر انجمن PHP/MYSQL
PHP:
$result= $db->sql_query("SELECT * FROM ".$prefix."_bbtopics WHERE topic_time ORDER BY topic_time,another_field DESC limit 0,30");
اونی که دوست شما گفته هم میشه انجام داد
شما کافیه زمانهارو تو دیتابیس بر اساس timestamp ذخیره کنی و یک شرط برای زمان مطلب بذاری که اگر زمان خبر برای امروز بود اونو نشون بده
 

clip2ni

New Member
PHP:
$result= $db->sql_query("select * from ".$prefix."_bbtopics where topic_time order by topic_time,another_field desc limit 0,30");
اونی که دوست شما گفته هم میشه انجام داد
شما کافیه زمانهارو تو دیتابیس بر اساس timestamp ذخیره کنی و یک شرط برای زمان مطلب بذاری که اگر زمان خبر برای امروز بود اونو نشون بده


اين كد كار نميكنه عزيزم !!
 

MMSHFE

Active Member
با سلام، اين كد رو امتحان كنيد:
PHP:
$query='SELECT * FROM `'.$prefix.'_bbtopics` ';
$query.='ORDER BY `topic_time` DESC, `topic_views` DESC ';
$query.='LIMIT 0,30';
$result=$db->sql_query($query);
توضيح: ميتونيد چند فيلد رو براي مرتب سازي در قسمت ORDER BY مشخص كنيد كه مرتب سازي به ترتيب انجام ميشه يعني اول براساس فيلد اول و بعد اگه ركوردهايي بودن كه در فيلد اول مشترك بودن، بر اساس فيلد دوم مرتب ميشن و الي آخر.
اميدوارم مشكلتون برطرف بشه.
موفق و مؤيد باشيد.
 

جدیدترین ارسال ها

بالا