Griever: Seitenzahlen "splitten".

Beitrag lesen

*hust* Ganz ehrlich? Das System sieht grässlich aus.

Ich habs jetzt folgendermaßen gemacht:

$blo = 9; // anzahl stets angezeigter seiten  
  
$start = 0; // start-variable  
$end = $blo; // end-variable  
if(floor($s / $as) > $blo / 2) { // wenn aktuelle seite über der hälfte der anzahl angezeigter seiten liegt  
	$end = (floor($s / $as) + 1) + floor($blo / 2); // endwert erhöhen  
}  
if(floor($s / $as) + 1 >= $blo / 2) { // für die korrektur, dass der anfangswert dann auch nachzieht.  
	$start = (floor($s / $as)) - floor($blo / 2);  
}  
  
if($end > $seiten) { // wenn das errechnete ende über der maximal vorhandenen seitenzahl liegt.  
	$end = $seiten; // endwerte berechnen  
	$start = $end - $blo; // startwerte von endwert ableiten  
}  
for($i = $start;$i < $end;$i++) { // dazu brauch ich nix schreiben. ^^  
	if($i == floor($s / $as)) {  
		echo "<b>" . ($i + 1) . "</b> ";  
         }else{  
		echo "<a href=\"index.php?p=gl&s=" . $i . "\">" . ($i + 1) . "</a> ";  
         }  
}  
if(floor($s / $as) > $end) { // wenn aktuelle seite über letzter seite liegt.  
	echo "... <b>" . (floor($s / $as) + 1) . "</b> ";  
}

floor($s / $as) ist die aktuelle seite. $s = der aktuelle SQL-Limit-Startwert. $as = die Anzahl der Einträge pro Seite.

Ergebnis: wie vorher erwähnt. ^^