Ranglisten Problem

EuroCent

Klappstuhl 2.0
Hab folgendes Problem

und zwar möchte ich erreichen das er auf jeder seite die Rang-Nummer weiter zählt und nicht bei 1 Wieder anfängt

Hier mal das Script:

PHP:
<?php
//Blätterfunktion
$highscoresperpage="1";
$rang = 0;

list($highscorecount) = $db->query_first("SELECT count(userid) FROM members");

if(isset($_REQUEST['page'])){
	$page = intval($_REQUEST['page']);
	if($page == "0") $page = "1";
}
else $page = "1";
 
$pages = ceil($highscorecount / $highscoresperpage);

$score=$db->query("SELECT m.*, a.* FROM members m LEFT JOIN allianz a on(m.clanid = a.clanid) WHERE m.activecode!='' ORDER by m.points DESC", 

$highscoresperpage,$highscoresperpage*($page-1));
	while($row=$db->fetch_array($score)) {
		
		$rang++;
		$points = number_format($row['points'], 0, '.', '.');
		if($row['clanid'] != 0) {
			$clanname = $row['clantitle'];
		} else {
			$clanname = "";
		}
?>
<tr>
<td class="<?php if($row['userid'] == getuserdata('userid')) echo "tablec"; else echo "tablea"; ?>"><span class="normalfont"><?php if($row

['userid'] == getuserdata('userid')) echo "<b>".$rang."</b>"; else echo $rang; ?></span></td>
<td class="<?php if($row['userid'] == getuserdata('userid')) echo "tablec"; else echo "tablea"; ?>"><span class="normalfont"><?php if($row

['userid'] == getuserdata('userid')) echo "<b><a onclick=\"fenster('index.php?profile=view&amp;userid=".$row['userid']."')\">".$row

['username']."</a></b>"; else echo "<a onclick=\"fenster('index.php?profile=view&amp;userid=".$row['userid']."')\">".$row['username']."</a>"; ?

></span></td>
<td class="<?php if($row['userid'] == getuserdata('userid')) echo "tablec"; else echo "tablea"; ?>"><span class="normalfont"><?php if($row

['userid'] == getuserdata('userid')) echo "<b><a onclick=\"fenster('index.php?profile=view&clanid=".$row['clanid']."');\" title=\"".$clanname." 

Ansicht\">".$clanname."</a></b>"; else echo "<a onclick=\"fenster('index.php?profile=view&clanid=".$row['clanid']."');\" title=\"".$clanname." 

Ansicht\">".$clanname."</a>"; ?></span></td>
<td class="<?php if($row['userid'] == getuserdata('userid')) echo "tablec"; else echo "tablea"; ?>"><span class="normalfont"><?php if($row

['userid'] == getuserdata('userid')) echo "<b>".$points."</b>"; else echo $points; ?></span></td>
</tr>
<?php
	}
		
	if($pages > 1) $pagelink = makepagelink("index.php?game=highscore&amp;page=$page",$page,$pages,1);
?>

Wenn ich 5 User habe und ich Pro Seite 1User anzeigen lassen dann Soll bei Seite 1 bei dem Betreffenden User auch Rang1, auf der zweiten Seite Rang2 usw.

Hoffe hier kann geholfen werden

Oder gibt es eine Bessere Seitenfunktion die das beheben des Problems löst?
Den ich möchte ungern auf Jeder seite den Rang 1 Lesen

Für jede Hilfe bin ich euch sehr dankbar

MfG

Lenox
 
$rankOffset = ( $page - 1 ) * $highscoresperpage (evtl: + 1) sollte als Basis für alle weiteren Rangnummern dienen können. Du berechnest also lediglich zu der Seite einen Initialwert hinzu, der sich aus der Seite und dem gewünschten Limit zusammensetzt. Damit das ganze nicht bei 0 ansetzt, musst du eventuell noch +1 addieren, aber so wie es in deinem Schnipsel aussieht, inkrementierst du vorher schon, weshalb das eher nicht nötig sein wird.
 
Naja falls man es besser regeln kann dann bin ich gern dafür ^^

Falls jemand etwas weiss wie man es am einfachsten lösen kann hab ich immer ein Ohr für sowas ;)

Ich mein ich könnt ja auch ein Frame machen und dort dann ins endlose laufen lassen...

Kommt aber denk ich mal nicht so beliebt bei den Usern dann an...

Vor allem wenn es dann in den 4Stelligen Bereich geht :P
 
Zurück