PHP und MYSQL - Daten sortiert auslesen
Tester
- php
Hallo,
Vielelicht kann mir jemand bei folgenden weiterhelfen...
ich habe eine MySQL Datenbank auf die ich mit PHP zugreife. Nun besteht diese DB aus 4 Spalten und mehreren Reihen...
Spalten:
ID,
Pos,
Neg,
Name. (ergaenzend: ID is kein primaerer Schluessel in der DB)
Durch einige Abfrageformular lasse ich die DB von Benutzern mit Eintraegen fuellen.
So kommt es nun vor das die ID ueber mehrere Spalten die selbe ist aber alle anderen Daten in der zugeordneten Reihe anders sind.
z.b.
ID Pos Neg Name
3 Ja Nein Tester1
1 Ja Nein Tester3
1 Ja Nein Tester4
2 Ja Nein Tester7
3 Ja Nein Tester8
1 Ja Nein Tester9
2 Ja Nein Tester0
2 Ja Nein Tester5
:
:
:
Was ich nun gerne Darstellen wuerde ist folgendes. Ich moechte die Haeufigkeit einer ID zaehlen und die 5 haeufigsten untereinander ausgeben.
Das koennte dann so aussehen:
3 Eintraege fuer ID 1
3 Eintraege fuer ID 2
2 Eintraege fuer ID 3
:
:
Hat jemand von euch eine Idee wie man das am geschicktesten machen kann?
Gruss
Tester
hi,
Ich moechte die Haeufigkeit einer ID zaehlen und die 5 haeufigsten untereinander ausgeben.
COUNT(), ORDER BY, GROUP BY, LIMIT
gruß,
wahsaga
n'abend,
Ich moechte die Haeufigkeit einer ID zaehlen und die 5 haeufigsten untereinander ausgeben.
COUNT(), ORDER BY, GROUP BY, LIMIT
SELECT foo, COUNT(*) AS anzahl
FROM mysqltable
GROUP BY foo
ORDER BY anzahl DESC
LIMIT 5
weiterhin schönen abend...
Hallo,
Danke fuer eure hilfe.
Leider komme ich nicht wirklich weiter :-(
Habe es wie folgt gemacht:
$abfrage = mysql_query("SELECT id, COUNT(*) AS anzahl FROM abstimmungen GROUP BY id ORDER BY anzahl DESC LIMIT 5");
Wie kann ich das ganze denn jetzt ausgeben?
echo $abfrage gibt mir folgendes aus: Resource id #6 ??
Meine DB hat zwei Eintraege bisher:
ID
1
2
Tester
hi,
Wie kann ich das ganze denn jetzt ausgeben?
echo $abfrage gibt mir folgendes aus: Resource id #6 ??
Wieso stellst du bereits spezifische MySQL-Fragen - wenn du noch gar nicht weißt, wie du das Ergebnis einer Abfrage überhaupt ausgibst?
http://tut.php-q.net/mysql-select-php.html
http://php-faq.de/ch/ch-database_mysql.html
gruß,
wahsaga
Oh nun hab ich es endlich :-)
$abfrage = mysql_query("SELECT id, COUNT(*) AS anzahl FROM abstimmungen GROUP BY id ORDER BY anzahl DESC LIMIT 5");
while($row = mysql_fetch_assoc($abfrage))
{
echo $row['id'];
}
Thanks for your help :-)
Eine Frage haette ich noch.
Meine Ausgabe der Haeufigkeit funktioniert soweit. Das heisst die ID die die meisten Eintrage hat wird als erstes ausgegeben. Nun ist meine Frage ob die genaue Anzahl auch mit ausgegeben werden kann?
Zum Beispiel ID mit dem Wert 4 ist 5 mal vorhanden. Kann man diese 5 auch mit darstellen?
"AS anzahl FROM abstimmungen" -> ist in anzahl der Wert enthalten?
Hab es gerade herausgefunden.