Tester: PHP und MYSQL - Daten sortiert auslesen

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

  1. hi,

    Ich moechte die Haeufigkeit einer ID zaehlen und die 5 haeufigsten untereinander ausgeben.

    COUNT(), ORDER BY, GROUP BY, LIMIT

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. 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...

      --
      wer braucht schon großbuchstaben?
      sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
      1. 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

        1. 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

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. 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 :-)

            1. 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?

              1. Hab es gerade herausgefunden.