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");
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.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
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
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 >
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.
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.
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.
Veritabanımdaki bilgiler;
https://mini.donanimhaber.com/images/upfiles/2108660/37d77f8e-dc83-4b6b-aab7-200307ed05b8.jpeg " target="_blank">< Resime gitmek için tıklayın >
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.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi Mehmet0173 -- 3 Kasım 2019; 4:11:52 >