GROUP BY yerini tutacak bir şey
12
●975
- 16-08-2009, 21:19:53Üyeliği durdurulduEğer yanlış anlamadıysam her kategoriden 10 ar tane çekmek istiosn ?
Bunun 2 yöntemi var kategorilerin sınırlıysa eğer bunu tek sorguda union ile yaparsın
$sql=" SELECT id, title, catid FROM jos_content jc WHERE sectionid=4 AND catid=4 LIMIT 10 UNION ALL SELECT id, title, catid FROM jos_content jc WHERE sectionid=4 AND catid=3 LIMIT 10 UNION ALL SELECT id, title, catid FROM jos_content jc WHERE sectionid=4 AND catid=2 LIMIT 10 UNION ALL SELECT id, title, catid FROM jos_content jc WHERE sectionid=4 AND catid=1 LIMIT 10 ";
yok sınırlıysa eğer once kategorileri seçer dongüye sokarsın ya da bu sorguyu yine döngüyle oluşturusun - 16-08-2009, 23:49:50Hayır hocam, her kategoriden onar adet içerik çekmek istemiyorum.
* 300 tane kategorim var, her kategoriye günde birkaç içerik yüklüyorum.
* Anasayfada Son 10 Öykü diye bir bölüm yaptım. Ama bu öykülerin her birinin bir kategoriden gelmesini istiyorum.
* MySQL sorgumda gördüğünüz gibi kategori adı ve içerik başlığını yazdırıyorum ekrana. Bu konuda başarılıyım. Ancak örneğin Polisiye türünden 3 tane öyküyü, Komedi türünden 2 tane öyküyü, Sürreailst türden bir adet öyküyü vesaire vesaire veriyor ana sayfaya. Oysa her bir türden bir tane versin.
Normalde GROUP BY catid yaptığım zaman sorun çözülürdü. Ama hemen ardındaki ORDER BY created olduğu için sorun karışıyor galiba. Son eklenen 10 içeriği değil de, bu sefer son yaratılan 10 kategori içeriklerini veriyor. Evet her kategoriden artık fazla içerik vermiyor ama, aynı zamanda artık en son eklenmiş içerikleri de vermiyor.
Bu konuda hâlâ usta PHP'cilerin ve MySQL ustalarının önerilerini bekliyorum.