[PHP] Rangking-system

Allo

Lt. Commander
Registriert
Feb. 2004
Beiträge
1.064
Ich habe folgendes Problem:

Ich habe ein Rangking-system für Benutzer meiner Seite eingeführt.
Die Ränge für die einzelnen Benutzer kann ich generieren, doch das auslesen dieser bekomm ich nicht hin.

Wenn z.B. Benutzer387 auf die Rangliste geht, soll er die Ränge 381-390 angezeigt bekommen. Wenn Benutzer1800 auf die Rangliste geht, soll er die Ränge 1791-1800 angezeigt bekommen usw.

Wie bekommt man es hin, dass dann später in der Mysql Abfrage
$query = "SELECT * FROM rangliste WHERE rang<=381 && rang>=390";
steht?
 
Gib jedem Benutzer einen Parameter mit dem Rank mit.
Also dein Benutzer387 bekommt einen Parameter "387"
dein Benutzer1800 den Parameter "1800".

Um die Zahl 381 und 390 zu bekommen musst du dir irgend ein Algorythmus überlegen. Z.B. durch 10 dividieren, Komma abschneiden und wieder mal 10 multiplizieren wäre dann 380. Dann +1 für 381 und +10 für 390.
 
Probier mal:

PHP:
$untergrenze = $userrang +1 - ($userrang % 10);
$obergrenze = $userrang +10 - ($userrang % 10);
 
Zuletzt bearbeitet:
Und das Auslesen würde ich dann so machen

Code:
SELECT * FROM rangliste LIMIT $start, $anz
$start: Startwert, an dem angefangen wird, auszulesen. In deinem Beispiel 380.
$anz: Anzahl der Datensätze, die ausgelesen werden sollen. In deinem Beispiel 10.
 
Ich glaube, dass es nicht sein Problem war das auszulesen, sondern auf den startwert zu kommen.
 
Blutschlumpf schrieb:
Probier mal:

PHP:
$untergrenze = $userrang +1 - ($userrang % 10);
$obergrenze = $userrang +10 - ($userrang % 10);

das functioniert bei den meißten werten, doch bei den problemwerten wie die oben genannten 1800 (und überhaupt alle vollen 100ter werte 100,200..) macht das noch fehler. denn da kommt anstatt 1791-1800 nämlich 1801-1810.
 
Hab mal ein ganzes Programm draus gemacht ;)

PHP:
for ($userrang = 1; $userrang <= 500; $userrang++)
{
   $untergrenze = $userrang - (($userrang-1) % 10);
   $obergrenze = $userrang +9 - (($userrang-1) % 10);
   echo $userrang.": ".$untergrenze." - ".$obergrenze."<br>";
}

So besser ?
 
perfekt :)
 
Zurück
Oben