• 09-08-2009, 20:40:44
    #1
    Arkadaşlar merhaba,

    haber_yorumlar ve haberler adında iki tablom var.

    haber_yorumlar tablosu = yorumid haberid

    Bu iki tablo ile en çok yorum alan 10 haberi nasıl listeleyebilirim?

    Yardımlarınız için şimdiden teşekkürler.
  • 09-08-2009, 21:31:12
    #2
    Bu haliyle ben olsam yapabilirdim ama çok zahmetli olur yani hamallık olur,en iyisi hit diye bi alan ekle onu artırırsın yorum eklerken,order by hit desc limit 0,10 diyede sıralarsın
  • 09-08-2009, 21:44:14
    #3
    bu haliyle o kadar zor mu sorguyu yazmak?
  • 09-08-2009, 22:04:30
    #4
    tolgay007 adlı üyeden alıntı: mesajı görüntüle
    Bu haliyle ben olsam yapabilirdim ama çok zahmetli olur yani hamallık olur,en iyisi hit diye bi alan ekle onu artırırsın yorum eklerken,order by hit desc limit 0,10 diyede sıralarsın

    O kadar zor değilmiş bilmeyene zor demekki..

    $cok_yorumlanan = mysql_query("select haber_id, count(id) from haber_yorumlar group by haber_id order by count(id) desc limit 10;");
  • 09-08-2009, 22:05:34
    #5
    Verdiğin bilgiler pek yeterli değil, mesela yorum sayılarını nasıl tutuyorsunuz, tutmuyorsanız haberid lerini saymamız gerekecek, performans için haber tablonuzda bir de yorum sayısını tutmanızı öneririm.

    Bir şeyler karaladım ama size uyacağından emin değilim, sql motorunu ve uyuşmayan yerleri düzeltmeniz gerekecek:

    $sal = 'SELECT * COUNT(haberid) as yorum_sayisi
            FROM haber_yorumlar hy, haberler, hb
            WHERE hy.yorumid = hb.haberid
            GROUP BY haberid
            ORDER BY yorum_sayisi ASC'
    $result = $db->sql_query_limit($sql, 10);
    
    while($row = $db->sql_fetchrow($result))
    {
        echo $row['haber_title'] . '<br />';
        echo $row['yorum_sayisi'] . '<br />';
    }
  • 10-08-2009, 10:38:14
    #6
    Üyeliği durduruldu
    performans olarak yorum eklenince haber tablosunda bir alan olup bunu arttirmak en pratik çözüm oluyor