Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
437
Tıklama
0
Öne Çıkarma
Her konunun son mesajını çekme
M
6 yıl
Çavuş
Konu Sahibi

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;
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 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.

Üye Ol Şimdi Değil





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

D
6 yıl
Yarbay

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 >
Bu mesaja 1 cevap geldi.
M
6 yıl
Çavuş
Konu Sahibi

İ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 >


Bu mesajda bahsedilenler: @Delifisek.Tux
D
6 yıl
Yarbay

Yorum tarihlerini kurcala biraz daha yorum koy yorumlarında ardışık


Bu mesaja 1 cevap geldi.
M
6 yıl
Çavuş
Konu Sahibi

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.




Bu mesajda bahsedilenler: @Delifisek.Tux
M
6 yıl
Çavuş
Konu Sahibi

Konu hala aktif, günlerdir beceremedim şunu yapmayı. Yok mu yapabilecek bir uzman arkadaş?



S
6 yıl
Yüzbaşı

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.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.