SELECT pm.* FROM pm JOIN (SELECT MAX(id) AS id_pm FROM pm WHERE pm_to={$session['id']} GROUP BY pm_from) DT1 ON DT1.id_pm = pm.id ORDER BY id DESC
Konuyu açtıktan dakikalar sonra çözdüm :laugh:
Merhaba arkadaşlar, Sinan abi konuya lütfen :D
Mesajlaşma sistemininde olduğu bir script yazıyorum fakat mesajların bulunduğu sayfada bir problem yaşıyorum. Amaç: mesajlar.php sayfasında konuşmalar olacak, herhangi bir konuşmaya tıklandığı zaman o konuşmadaki mesajları içeren chat sayfasına gidecek. Ancak konuşmaların bulunduğu sayfada şöyle bir problem yaşıyorum; while ile mevcut session id'sine gelen tüm mesajları while döngüsü ile listeliyorum fakat şöyle bir görüntü oluyor:
substr(Mesaj içeriği) - Ahmet (en yeni)
substr(Mesaj içeriği) - Ahmet (yeni ya da eski)
substr(Mesaj içeriği) - Ahmet (yeni ya da eski)
substr(Mesaj içeriği) - Mehmet (yeni ya da eski)
substr(Mesaj içeriği) - Mehmet (yeni ya da eski)
substr(Mesaj içeriği) - Mehmet (yeni ya da eski)
Bu güzel, kod çalışıyor. :D
Ancak yapmaya çalıştığım şu:
substr(Mesaj içeriği) - Ahmet (en yeni)
substr(Mesaj içeriği) - Mehmet (yeni ya da eski)
Yani göndericiden gelen mesajlar ard arda sıralanmak yerine tek bir gönderici adı altında toplanması gerek, tıklandığı zaman chat sayfasında görüntülenmesi için.
kolonlarım:
SQL sorgum şu şekilde:
SELECT * FROM pm WHERE pm_to={$session['id']} GROUP BY pm_from ORDER BY id DESC
Denediğim yöntem (olmadı):
SELECT * FROM pm JOIN (SELECT pm_from FROM pm GROUP BY pm_from) m ON m.pm_from = pm.pm_from WHERE pm_to={$session['id']} ORDER BY id DESC