Guten Morgen zusammen,
vielleicht kann mir hier jemand helfen
Also es geht um folgendes :
Bei unserem Browserspiel können durchaus mehrere tausend Spieler teilnehmen. Nun bin ich dabei die Anzeige der Rangliste einzubauen.
Ich will natürlich keine Liste ALLER Spieler, sondern das ganze soll so aussehen :
Ich möchte den Eintrag des Spielers haben, plus die 25 Spieler über ihm in der Liste UND die 25 Spieler unter ihm in der Liste.
Das soll also die standardanzeige sein wenn man auf die Liste geht, damit man direkt sieht wo man sich selbst befindet und wer so direkt über und unter einem ist.
Nun das Problem für mich --> wie mache ich hierfür am besten die DB Abfrage ?
Als gegebenen Wert habe ich die eigene Punktezahl, die liegt also vor und kann zur Abfrage verwendet werden.
Kann man mit mysql irgendwie n count in die Abfrage einbauen ?
Also ich hab da n Eintrag bekommen für genau diese sache, allerdings war der für Cold Fusion und MSSql gedacht und ich bekomme ihn bei mir nicht zum laufen ;(
Die Abfrage sah da so aus :
Wäre super nett wenn mir da jemand helfen könnte das ganze für PHP und MySql hinzubekommen.
Hatte das mal so geschrieben für mich, aber das klappt leider nicht :
Bringt zwar keine Fehlermeldung, liefert mir aber auch keinerlei Daten, die Tabelle bleibt leer ;(
$score = die eigene Punktezahl <-- bekannt
$playerid = die eigene ID <- bekannt
Vielen Dank schonmal, bin wirklich kein helles Licht was DB Abfragen angeht
-----------------------
Update :
Also mit der Abfrage :
Kann ich mir wunderbar die ganzen Spieler in der Rangliste anzeigen lassen und es ist auch alles direkt nach Punktezahl sortiert.
Nur brauch ich das eben für einen "Auszug" aus der Rangliste, wo auch immer sich der Spieler selbst dort befindet
vielleicht kann mir hier jemand helfen
Also es geht um folgendes :
Bei unserem Browserspiel können durchaus mehrere tausend Spieler teilnehmen. Nun bin ich dabei die Anzeige der Rangliste einzubauen.
Ich will natürlich keine Liste ALLER Spieler, sondern das ganze soll so aussehen :
Ich möchte den Eintrag des Spielers haben, plus die 25 Spieler über ihm in der Liste UND die 25 Spieler unter ihm in der Liste.
Das soll also die standardanzeige sein wenn man auf die Liste geht, damit man direkt sieht wo man sich selbst befindet und wer so direkt über und unter einem ist.
Nun das Problem für mich --> wie mache ich hierfür am besten die DB Abfrage ?
Als gegebenen Wert habe ich die eigene Punktezahl, die liegt also vor und kann zur Abfrage verwendet werden.
Kann man mit mysql irgendwie n count in die Abfrage einbauen ?
Also ich hab da n Eintrag bekommen für genau diese sache, allerdings war der für Cold Fusion und MSSql gedacht und ich bekomme ihn bei mir nicht zum laufen ;(
Die Abfrage sah da so aus :
Code:
select count(*) as cnt from player where score > #player.score# or (score = #player.score# and id < #playerID#)
Hatte das mal so geschrieben für mich, aber das klappt leider nicht :
Code:
$abfrage = ("SELECT COUNT(*) AS cnt FROM " . $dbprefix . "player WHERE score >$score OR (score=$score AND id<$id)") ;
$score = die eigene Punktezahl <-- bekannt
$playerid = die eigene ID <- bekannt
Vielen Dank schonmal, bin wirklich kein helles Licht was DB Abfragen angeht
-----------------------
Update :
Also mit der Abfrage :
Code:
$abfrage = ("SELECT * FROM " . $dbprefix . "player ORDER by score DESC");
Nur brauch ich das eben für einen "Auszug" aus der Rangliste, wo auch immer sich der Spieler selbst dort befindet
Kommentar