Hallo
Ich bin leider mit SQL und PHP nicht so fließend, wie ich mir das wünschen würde deswegen poste ich hier gerade ein akkutes Problem. Habe die ganze Nacht dran gesessen und komme nicht vorran. Es wäre großartig wenn mir da jemand einen Anstoß geben könnte.
Ich habe ein kleines Flashgame Programmiert das natürlich eine Highscoreliste braucht. Die Ergebnisse werden per PHP vom Flash in eine MySQL Datenbank gebracht.
Das ist soweit alles in Ordnung und fertig (!). Es geht nur um die kleinigkeit, dem Spieler beim veröffentlichen seines Scores auch mitzuteilen auf welchen Platz er nun liegt. Das ist aber gerade in DIESEM Spiel nicht einfach weil ganze 4 Werte darüber entscheiden.
Zunächst stehen die Spieler, die meisten levels geschaft haben (Feld `level`) ganz oben. Bei gleichstand wird die Anzahl der Pickups verglichen (Feld `pickup`). Besteht immer noch gleichstand wird die Anzahl der Schläge verglichen (Feld `moves`). Das Spiel ist so ähnlich wie Golf, je weniger Schläge desto besser. Gibt es immer noch zwei Spieler auf dem gleichen Platz wird die Zeit verglichen (Feld `zeit`), hier gilt wieder weniger ist besser. Sich die Highscoreliste so zu sortieren und GANZ auszugeben war kein Thema, das mache ich einfach so:
Wie zum Geier soll ich aber herausfinden auf welchen Platz ein Spieler mit ganz bestimmten Ergebnissen gelandet ist? Das ist ganz sicher etwas total grundlegendes, was ich einfach in keinem Tutorial gesehen habe.. mir ist das ganze jetzt schon peinlich.. hilfe!
Ich bin leider mit SQL und PHP nicht so fließend, wie ich mir das wünschen würde deswegen poste ich hier gerade ein akkutes Problem. Habe die ganze Nacht dran gesessen und komme nicht vorran. Es wäre großartig wenn mir da jemand einen Anstoß geben könnte.
Ich habe ein kleines Flashgame Programmiert das natürlich eine Highscoreliste braucht. Die Ergebnisse werden per PHP vom Flash in eine MySQL Datenbank gebracht.
Das ist soweit alles in Ordnung und fertig (!). Es geht nur um die kleinigkeit, dem Spieler beim veröffentlichen seines Scores auch mitzuteilen auf welchen Platz er nun liegt. Das ist aber gerade in DIESEM Spiel nicht einfach weil ganze 4 Werte darüber entscheiden.
Zunächst stehen die Spieler, die meisten levels geschaft haben (Feld `level`) ganz oben. Bei gleichstand wird die Anzahl der Pickups verglichen (Feld `pickup`). Besteht immer noch gleichstand wird die Anzahl der Schläge verglichen (Feld `moves`). Das Spiel ist so ähnlich wie Golf, je weniger Schläge desto besser. Gibt es immer noch zwei Spieler auf dem gleichen Platz wird die Zeit verglichen (Feld `zeit`), hier gilt wieder weniger ist besser. Sich die Highscoreliste so zu sortieren und GANZ auszugeben war kein Thema, das mache ich einfach so:
PHP-Code:
$satz = mysql_db_query($dbname,"SELECT * FROM $dbtab ORDER BY
`level` DESC,
`pickup` DESC,
`moves` ASC,
`zeit` ASC
LIMIT $maxspieler OFFSET $foffset");
Kommentar