Ben iki msyql tablo, rozetleri ve Olaylar var. Ben kullanmak tüm olayları bulmak ve aşağıdaki kodu kullanarak bu olayın (başlık ve açıklama) için rozet bilgi döndürmek için join:
SELECT COUNT(Badges.badge_ID) AS badge_count,title,Badges.description FROM
Badges
JOINEvents
ON Badges.badge_id=Events.badge_id GROUP BY title ASC
Maddeye ek olarak, ben en çok girişleri ile olayın değerini bilmek gerekir. Ben max () fonksiyonu ile php bunu düşündüm, ama bu doğru işe giderken sorun vardı. Yani, ben, değeri tüm olayların en yüksek sayısı toplam tek bir elemanın bir dizi döndüren ", badgecount DESC LIMIT 1 ORDER BY" Ben kullanarak yukarıdaki sorguyu değiştirerek aynı sonucu alabilir verdi.
Bu çözüm benim için iyi çalışıyor olsa da yerine php dışarı çalışma (b / c şimdi iki sorgu kullanıyorum) sunucuya 2 arama yapmak için daha fazla kaynak alıyor, ben merak ediyorum. Ben php bunu yaptın, nasıl ben (eğer mümkünse, anahtar ve değerini iade edebilmek güzel olurdu) bir ilişkisel dizi içinde belirli bir öğenin max değeri alabilir?
EDIT: OK, it's amazing what a few hours of rest will do for the mind. I opened up my code this morning, and made a simple modification to the code, which worked out for me. I simply created a variable on the count field and, if the new one was greater than the old one, changed it to the new value (see the "if" statement in the following code):
if ( $c > $highestCount ) { $highestCount = $c; }