Rang in einer Tabelle?
Heinz
- datenbank
Hallo!
Ich hab wiedermal eine Frage zu MySQL. :-)
Bei einer Abfrage möchte ich den Rang eines Datensatzes ermitteln.
Ein Beispiel:
SELECT players.First_Name, players.Last_Name, teams.Team_Short Team, SUM(games.PTS) Points
FROM players, games, teams
WHERE players.PlayerID = games.PlayerID
AND games.TeamID = teams.TeamID
AND games.PlayerID = 124
GROUP BY games.PlayerID
So, damit bekomme ich die Daten des Spielers (Vorname, Nachname, Team und Punkte gesamt). Ich möchte nun aber zusätzlich feststellen, an welcher Stelle/Rang der Spieler mit Nummer 124 in der Punktetabelle steht.
Ich habe dafür leider nichts Passendes gefunden. Wer kann mir weiterhelfen?
Danke
Heinz
Hallo!
Ich wüßte keien Möglichkeit so etwas in mySQL zu ermitteln(was nicht heißt das es nicht geht!), jedenfalls würde ich _alle_ Spieler(nur deren Nummer) aus der Tabelle auswählen, und nach einem von Dir bestimmten Kriterium sortieren (ORDER BY Punkte...). Dann würde ich das Ergebnis in einer Schleife abfragen:
while($row=mysql_fetch_row($result)) {
$i++;
if($row[0]==$gesuchte_spielernummer) {
$rang = $i;
break;
}
}
echo "der Spieler mit der Nummer $gesuchte_spielernummer hat den Rang: $rang";
So würde ich es in etwa machen(ungetestet).
Grüße
Andreas
while($row=mysql_fetch_row($result)) {
$i++;
if($row[0]==$gesuchte_spielernummer) {
$rang = $i;
break;
}
}echo "der Spieler mit der Nummer $gesuchte_spielernummer hat den Rang: $rang";
Danke! So funktioniert es. Noch ein Frage: Wie würde die Schleife aussehen, wenn ich nicht nur den Rang bei den Punkten, sondern z.B. auch bei der Anzahl der Spiele, Fouls usw. erhalten möchte?
Schöne Grüße
Heinz
Hallo!
Danke! So funktioniert es. Noch ein Frage: Wie würde die Schleife aussehen, wenn ich nicht nur den Rang bei den Punkten, sondern z.B. auch bei der Anzahl der Spiele, Fouls usw. erhalten möchte?
Lies mal http://php3.de/manual/de/function.mysql-fetch-array.php, wenn Du es dann nicht hinbekommst schreib nochmal woran genau Du gescheitert bist.
Grüße
Andreas