Arama butonu
Bu konudaki kullanıcılar: 1 misafir
1
Cevap
662
Tıklama
0
Öne Çıkarma
Mysql veri çekerken GROUP BY ile son veri nasıl çekilir?
M
9 yıl
Çavuş
Konu Sahibi

Merhaba arkadaşlar, bir mesajlar tablom var. Mesajlar tablomda kayıtlı olan mesajları çekiyorum ama çekerken son mesaj gelsin istiyorum.

Tablom şu şekilde: (Ali'nin id= 16, Veli'nin id= 17, Giriş yapan id=1)

Tablo adi: mesajlar
< Resime gitmek için tıklayın >



Tabloda gördüğünüz gibi 3 mesaj var. 2 tanesini ali atmış Giriş yapana, bir tanesini veli atmış Giriş yapana.

Kodum şöyle:
[PHP]
$giris_yapan = $_SESSION("uye_id"); // Giriş yapan kişinin id=1

$query = query("SELECT * FROM mesajlar WHERE mesaj_alan = '$giris_yapan' GROUP BY mesaj_gonderen ORDER BY mesaj_id DESC");

[/PHP]


Arkadaşlar bu kodla verileri Group By olarak çekip döngüyle listeliyorum. Fakat sorun şu ki alinin "ilk attığı mesajı" görüyor sadece. Ben alinin attığı son mesajı görmek istiyorum.

YANİ KISACA ÇIKTI ŞU ŞEKİLDE:
1) ben ali
2) ben veli

ÇIKMASINI İSTEDİĞİM İSE:
1) ben veli
2) ben ali 2

Elimden geldikçe basit anlatmaya çalıştım, umarım anlaşılmışımdır.



M
9 yıl
Çavuş
Konu Sahibi

Tamam hallettim. İç içe iki ayrı sorgu ile yaptım.

Son hali:


$query = query("SELECT * FROM mesajlar WHERE mesaj_alan = '$giris_yapan' GROUP BY mesaj_gonderen ORDER BY mesaj_id DESC");
while($row=mysql_fetch_array($query)){

$msj_gonderen_id= $row["mesaj_gonderen"];

$query2 = mysql_fetch_array(query("SELECT mesaj FROM mesajlar WHERE mesaj_alan = '$giris_yapan' && mesaj_gonderen = '$msj_gonderen_id' ORDER BY mesaj_id DESC LIMIT 0,1");)
while($row2=mysql_fetch_array($query)){
$uyeye_gelen_son_msj= $row2["mesaj"];
}
}





< Bu mesaj bu kişi tarafından değiştirildi Mehmet0173 -- 24 Aralık 2016; 6:43:8 >

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.