Php Son Cevap Verilen Başlığa Göre Sıralama Sorunu
-
Herkese selam,
Şimdi başlık tablom var bir de entry tablom var
örneğin başlık tablomda
id - baslik
diye iki stün var
entry tablomda id - baslik_id - entry
diye stünlarım var
şimdi başlığa yeni entry girince sıralama ona göre olsun istiyorum en son entry girilen başlıktan en eski girilen başlığa doğru listeleme istiyorum.
Şunu denedim olmadı =
$s_baslik_listele= $dbcon->prepare("SELECT baslik.id, baslik.baslik FROM baslik INNER JOIN entry ON baslik.id = entry.baslik_id order by entry.id DESC");
Yardımcı olabilirseniz çok sevinirim
oluyor ama besela 5 tane entry varsa 5 kere döngü ediyor ben 1 kere yazsın istiyorum
ÖRNEK =
böyle oluyor böyle olmasın sadece 1 tane olsun istiyorum
EDİT =
ŞÖYLE BİR ÇÖZÜM ÜRETTİM=
baslik tabloma siralama diye sütun açtım her entry eklendiğinde o başlığın siralamasını time() fonksiyonu ile güncelliyorum
listelerken de order by siralama DESC diye sıralıyorum
Sizce sağlıklı bir yöntem mi?
arkinfes tarafından 03/Haz/20 23:36 tarihinde düzenlenmiştir -
edit: farkli olmasa da olur
herlocksholmes tarafından 04/Haz/20 01:22 tarihinde düzenlenmiştir -
herlocksholmes bunu yazdı
Ben olsam entry tablosundaki son X farkli entry kayitinin post'unu cekerdim.
SELECT* FROM posts WHERE id IN (
SELECT post_id FROM entries GROUP BY post_id ORDER BY id DESC LIMIT X
)
işte öyle yapmak istiyorum zaten örnekte böyle oluyor diye resimi gösterdim :) yanlış anlaşılma olmuş. Senin verdiğin kodu deneyeyim bir hocam.
Teşekkür ederim
-
Hocam ben tam yapmak istediğin şeyi anlayamadım fakat şunu dene bir,
select * from baslik, entry where baslik.id = entry.baslik_id order by entry.id desc
yada
senin sorgunun sonuna LIMIT 1 fonksiyonu ekle :) ama bu hatalı bir çözüm olur herhalde.
-
böyle denermisin
select baslik.id, baslik.baslik from baslik left join (select baslik_id,max(id) as max_id from entry group by baslik_id) as a on a.baslik_id=baslik.id order by a.max_id desc