Şimdi Ara

Her konunun son mesajını çekme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
8
Cevap
0
Favori
410
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar, mysql ile yapmaya çalıştığım ama saatlerdir beceremediğim ve anlam veremediğim bir sorun var.

    Bir forum sistemi kodluyorum ve anasayfaya da birçok forumda olduğu gibi "son cevaplanan konular" kısmı eklemek istiyorum. Fakat konuların son yorumunu çekmek bir yana, sadece yorumları bile gruplandıramıyorum.


    $query = mysqli_query("SELECT * FROM (SELECT * FROM forum_yorum ORDER BY forum_yorum.yorum_id DESC) AS fy GROUP BY fy.yorum_konu_id LIMIT 10");


    Veritabanımdaki bilgiler;
    [simage]https://forum.donanimhaber.com/images/upfiles/2108660/37d77f8e-dc83-4b6b-aab7-200307ed05b8.jpeg [/simage]

    Görüldüğü üzere 1. ve 3. konuya ait 1 yorum, 2. konuya ait 2 yorum var.

    Yapmak (listelemek) istediğim;
    - dördüncü yorum
    - üçüncü yorum,
    - birinci yorum

    Yani her konunun son mesajını çekecem ama mysql GROUP BY olayını kafasına göre ayarlıyor.
    DESC yaptığım halde ASC olarak (birinci, üçüncü, dördüncü şeklinde) çekiyor.



    < Bu mesaj bu kişi tarafından değiştirildi Mehmet0173 -- 3 Kasım 2019; 4:11:52 >







  • SELECT
    DISTINCT(forum.id)
    forum.baslik
    yorum.sahip
    FROM
    forum_tablosu AS forum,
    yorum_tablosu as yorum
    WHERE
    forum.id = yorum.forum_id
    ORDER BY yorum.yorum_tarihi DESC
    LIMIT 10



    < Bu mesaj bu kişi tarafından değiştirildi Delifisek.Tux -- 3 Kasım 2019; 11:25:46 >
  • Delifisek.Tux kullanıcısına yanıt
    İlgilendiğiniz için teşekkür ederim.

    SELECT DISTINCT(forum.konu_id), forum.konu_baslik FROM forum, forum_yorum AS yorum WHERE forum.konu_id = yorum.yorum_konu_id ORDER BY yorum.yorum_tarih DESC

    Kodu aynen uyguladım ama son açılan "konudan" ilk açılana doğru bir listeleme yapıyor. Yorum sırasını hiç dikkate almıyor. Ben son yorum yapılan konudan ilke doğru listelesin istiyorum.

    Hatta şu şekilde konuları araya koymadan sadece son yorumdan ilk yoruma doğru her konuya bir yorum gelecek şekilde listelemeye çalıştım ama konu_id'ye göre gruplama yapmadan bütün yorumları alt alta listeliyor nedense.

    SELECT DISTINCT(yorum_konu_id), yorum_icerik FROM forum_yorum ORDER BY yorum_tarih DESC



    < Bu mesaj bu kişi tarafından değiştirildi Mehmet0173 -- 3 Kasım 2019; 15:54:54 >
  • Yorum tarihlerini kurcala biraz daha yorum koy yorumlarında ardışık
  • Delifisek.Tux kullanıcısına yanıt
    Yorumlarında ardışık derken neyi kast ettiniz hocam anlamadım?

    Daha fazla yorum koymayı da denedim zaten, durum değişmiyor. Yorum_id'ye göre listeliyorum olmuyor, yorum_tarih'e göre listeliyorum yine olmuyor. Zaten ikisi de aynı mantığa geliyor. Dün akşamdan beri buna takıldım kaldım. Doğru düzgün bir örnek de bulamadım. Bu kadar forum sitesi neye göre yapıyor anlamadım.
  • Konu hala aktif, günlerdir beceremedim şunu yapmayı. Yok mu yapabilecek bir uzman arkadaş?
  • select * from forum.yorum a 
    join
    (select yorum.yorum_konu_id, max(yorum.yorum_tarih) tarih from forum.yorum order by yorum.yorum_tarih desc group by yorum.yorum_konu_id) b
    on a.yorum_tarih = b.tarih and a.yorum_konu_id = b.yorum_konu_id;


    Bunun olması lazım. Tarih yerine ID'ye göre de yapabilirsin istersen.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.