Hallo,
Zu beachten ist dabei, dass nur die in der GROUP-BY-Klausel angegebenen Spalten im SELECT auftauchen dürfen - wenn man es richtig macht, MySQL gestattet auch andere Spalten, aber dann ist das Ergebnis zufällig. Weiterhin kann man Aggregatfunktionen verwenden, wie das erwähnte COUNT().
SELECT Ort, COUNT(*) FROM tabelle GROUP BY Ort
ich habe es nun so umgesetzt:
$sql = "
SELECT ort, COUNT(*)
FROM `kontaktanzeigen`
WHERE online = '1'
GROUP BY ort
Limit 5
";
Wenn ich mir das $sql ausgebe, sehe ich folgendes:
SELECT ort, COUNT(*) FROM kontaktanzeigen
WHERE online = '1' GROUP BY ort Limit 5 Aachen Albstadt Altlandsberg OT Gielsdorf Aschaffenburg Augsburg
Diese Ausgabe ich nicht war. Gehe ich nun in meine Datenbank und suche nach Aachen da dieses ja laut der Abfrage die Stadt mit den meisten Einträge sein soll, sagt mir PHPMyAdmin folgendes:
"MySQL lieferte ein leeres Resultat zurück (d.h. null Datensätze). (Die Abfrage dauerte 0.0007 Sekunden.)"
Suche ich nach Berlin findet er z.B. 4 Einträge. Berlin taucht oben allerdings überhaupt nicht auf. Irgendwo ist hier noch ein Fehler.