Punkte für jeden Fahrer zusammenzählen

aherzog

Erfahrenes Mitglied
Hallo tutorial-forum.

Ich bin in MySQL noch etwas schwach auf den Füssen und brauche deshalb eure Hilfe.

Folgende Datenbankstruktur ist vorhanden.

Fahrer Punkte

M. Schumacher 5
F. Alonso 7
R. Barrichello 6
F. Alonso 10
M. Schumacher 5
u.s.w


Wie bringe ich das hin das ich alle Punkte für jeden Fahrer einzeln zusammenzählen kann.

Mein gewünschtes Ergebnis:

F. Alonso 17
M. Schumacher 10
R. Barrichello 6

Vielen Dank für die Hilfe.
 
SELECT punkte FROM tabelle WHERE fahrer = 'Schumacher'
könntest du z.B machen ;)
Dann halt die ganzen $row['punkte'] teile zusammenzählen.

Mit IDs arbeite ich persönlich übrigens lieber
 
danke für die antwort.
wenn ich das richtig gelesen habe, so ist dieses Beispiel ja nur für einen Fahrer.


Am Schluss bräuchte ich eine Tablle in der alle Punke seperat für jeden einzelnen Fahrer (dürften so um die 500 sein) zusammengezählt werden. Diese Tabelle soll zeigen welcher Fahrer am meisten Punkte bekommen hat, so eine Art Punkte-HiScore.
 
Probier mal folgende Abfrage:
Code:
SELECT
        `fahrer`,
        SUM(`punkte`) AS `gesamtpunkte`
  FROM
        …
  GROUP BY
        `fahrer`
 
Tollll...so wenig Code und es funktzioniert.

Wenn ich nun nach dem Gesamtpunkten sortieren will, kommt eine Fehlermeldung.
Liegt es daran, das in meiner Datenbank keine Spalte mit Gesamtpunkte vorhanden ist, oder hab ich was falsch geschrieben

Hier der Code.

$res = mysql_query("SELECT `fahrer`,SUM(`punkte`) AS `gesamtpunkte` FROM ergebnis GROUP BY `gesamtpunkte`");

while ($dsatz = mysql_fetch_assoc($res))
{
echo $dsatz["fahrer"] . ", "
. $dsatz["gesamtpunkte"] . "<br>";
}
 
Code:
SELECT
        `fahrer`,
        SUM(`punkte`) AS `gesamtpunkte`
  FROM
        …
  GROUP BY
        `fahrer`
  ORDER BY
        SUM(`punkte`) DESC
GROUP BY und ORDER BY sind zwei verschiedene Paar Schuhe.
 
$res = mysql_query("SELECT `fahrer`,SUM(`punkte`) AS `gesamtpunkte` FROM ergebnis GROUP BY `fahrer` ORDER BY SUM(`punkte`) DESC");


Egal was ich eingebe, sobad der Befehl ORDER BY SUM(`punkte`) vorhanden ist kommt eine Fehlermeldung. Ich habe es versucht mit Nur ORDER BY SUM(`punkte`), dann nur GROUP BY `fahrer`, das hat funktzioniert. Wenn ich beide eingebe, so wie im B.S.P oben kommt ebenfalls folgende Fehlermedung:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
 
Im ORDER BY kannst Du meines Wissens die Aliasnamen verwenden:
Code:
SELECT
        `fahrer`,
        SUM(`punkte`) AS `gesamtpunkte`
  FROM
        ergebnis
  GROUP BY
        `fahrer`
  ORDER BY
        `gesamtpunkte` DESC
Gruß hpvw
 
hallo hpvw


Doch bin ich bereits selber auf die Idee gekommen, das Ergebnis ist leider genau das gleiche wie oben beschrieben.

Mein Handbuch schweigt leider auch, deshalb stecke ich jetzt hier irgendwie fest :(

Denoch Danke für die Hilfe.
 
Zurück