Hallo,
ich habe eine kleine Hiscore-Liste bei einem Spiel.
Jetzt wird z.B. ein Spieler eingetragen mit 1543 Punkten.
Wenn ich mir die Liste ansehe (über SELECT name,punkte FROM hiscore ORDER BY punkte DESC), dann sehe ich das die Person auf Platz 24 steht.
Aber gleichzeitig würde ich gerne eine Meldung ausgeben die dem Spieler sagt, "Sie haben Platz 24 erreicht". Und das sollte schon dastehen BEVOR er in die Liste eingetragen wurde.
Und dort beginnt mein Problem. Die einzige Möglichkeit die ich finde ich, die Liste über den oben geschriebenen Befehl durchzugehen und nebenbei einen Counter durchlaufen zu lassen. Und wenn der Datensatz gefunden wurde, dann habe ich den Platz.
Da diese Hiscore aber die Besten 10.000 speichern soll finde ich diese Möglichkeit nicht gerade Geschwindigkeitsfreundlich.
Wie könnte mein Weg aussehen um die Position des Spielers abzufragen. Ich habe schon einen JOIN LEFT versucht, allerdings komtm da nichts sinnvolles bei raus, weil ich wieder die ganze Liste durchgehen müsste.
Brauche Hilfe.
Der Aufbau der Tabelle ist ganz schlicht gehalten:
ident | name | punkte
und als Variablen in meinem Script habe ich
$_POST["name"] und $_POST["punkte"].
Die Felder kommen über Flash rein und werden natürlich auf gültigkeit und versuchter Manipulation geprüft
Ich suche wie immer keine Komplettlösung, bei mir zählt immer der Weg ist das Ziel, aber leider stehe ich vor einem Schilderwald und finde nicht mal einen Trampelpfad!
Danke,
Stefan