[mySQL] Problem beim herausfinden, welcher Name der populärste ist

Kurt Cobain

Erfahrenes Mitglied
Tag Tag

Also ich will eine Seite machen, bei der man seinen Namen in eine Datenbank schreiben kann, dann werte ich aus, welcher Name am häufigsten verwendet wird.

Also ich hab z.B. ne mySQL Tabelle:
id......name................mit diesen einträgen
1......michael
2.......tobias
3.......michael
4.......david
5......michael
6........david
7..........michael


Und jetzt will ich, dass mein programm eine Liste erstellt....so etwa:
1. michael.....3 einträge
2. David.........2 einträge
3. tobias........1 eintrag



Als erstes schau ich, welche namen überhaupt vorhanden sind,
dann, wieviel einträge jeder name hat.
PHP:
$abfrage = "SELECT * FROM namen WHERE GROUP BY name";
$ergebnis = mysql_query ($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
     $abfrage2 = "SELECT count(*) as Anzahl FROM namen WHERE name='$row->name'";
     $ergebnis2 = mysql_query ($abfrage2);
         $row2 = mysql_fetch_object($ergebnis2)

 echo $row->name." ".$row2->Anzahl." einträge";

}


Mein Problem ist, dass ich die Einträge nicht in der korrekten Reihenfolge ausgebe, also den Name mit den meisten Einträgen als 1.

Hoff ihr könnt mir da helfen..


gruß ich
 
von mysql habe ich keine Ahnung, aber folgendes sollte in den meisten (halbwegs ANSI-konformen) SQL-Dialekten funktionieren:


SELECT name, count(*)
FROM namen
GROUP BY name
ORDER BY COUNT(*) DESC


Gruß

M.
 

Neue Beiträge

Zurück