Ranking Tabelle?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ranking Tabelle?

    Hallo!

    Das ist vielleicht eine dumme Frage, aber ich kriege es einfach nicht hin.

    Ich habe eine "Comic Index" Tabelle in der sich Angaben verschiedener Hefte befinden.
    Die für diese Abfrage wichtige Spalte ist [autor]. Es gibt mehrere Hefte, und jedes Heft hat logischerweise einen Autor. Nehmen wir an es gibt insgesamt 20 Hefte und davon hat Mr. X 10 geschrieben, Mr.Y 8 und Mr.F 2 (es befinden sich natürlich mehr als nur 20 Hefte in der Tabelle :-)). Ich möchte nun gerne ein Ranking erstellen, das ungefähr folgendermaßen aussehen soll:

    Platz Autor Anzahl Hefte
    1. Mr.X 10
    2. Mr.Y 8
    3. Mr.F 2
    .
    .
    .

    Jeder Autor soll nur einmal auftauchen und die Anzahl der von ihm geschriebenen Hefte soll addiert und ausgegeben werden.

    Mein jetziger Code sieht folgendermaßen aus:

    ---------------------------------------------------------------------------------

    $Query = "Select * from $TableName GROUP BY autor
    order by autor asc";

    $Result = mysql_db_query ($DBName, $Query, $Link);
    $Result2 = mysql_db_query("$DBName", "SELECT COUNT(autor) from comicindex");

    $anzahl = mysql_result($Result2,0);

    while ($Row = mysql_fetch_array ($Result))
    {

    print ("$Row[autor] - $anzahl<br>
    \n");

    }
    mysql_close ($Link);

    ---------------------------------------------------------------------------------

    Bei mir wird immer nur die Anzahl aller Hefte ausgegeben. Was muss an dem Code geändert werden?

    Grüße
    Thilo
    Zuletzt geändert von DarkFlash; 20.04.2002, 23:22.

  • #2
    $Result = mysql_query("select autor, count(*) from $TableName group by autor");
    for ($i=1; list($autor, $anzahl) = mysql_fetch_row($Result); $i++)
    echo "$i - $autor - $anzahl hefte<br>";
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Super! Vielen Dank. Das funktioniert. Leider werden die Daten nicht absteigend nach der höchsten Anzahl von Heften, sondern nach dem Namen des Autors angezeigt.

      Bsp. weise so:

      --------------------------------------------
      21 - Joe Casey - 9 hefte
      22 - Joe Kelly - 11 hefte
      23 - John Byrne - 46 hefte
      24 - Jordan B. Gorfinkel - 3 hefte
      --------------------------------------------

      ich hätte es aber lieber so :-)

      --------------------------------------------
      John Byrne - 46 hefte
      Joe Kelly - 11 hefte
      Joe Casey - 9 hefte
      Jordan B. Gorfinkel - 3 hefte
      --------------------------------------------

      Wie erreiche ich das es so ausgegeben wird?

      Grüße
      Thilo

      Kommentar


      • #4
        Ich kanns nicht checken, aber ich nehme an es müßte so gehen:


        PHP-Code:
        $Result mysql_query("select autor, count(*) from $TableName group by autor order by 2 desc"); 
        for (
        $i=1; list($autor$anzahl) = mysql_fetch_row($Result); $i++) 
        echo 
        "$autor - $anzahl hefte<br>"

        Kommentar


        • #5
          Danke. Jetzt funktioniert es wie es soll

          Kommentar

          Lädt...
          X