Mailinglisten-Archive |
marcel.burkhalter_(at)_crypto.ch Sent: Tuesday, December 18, 2001 2:00 PM
> wenn man nun z.b. ein paar mal auf nächste seite klickt sollten
> die direkten seiten links so aussehen:
>
> ... 10 11 12 13 14 [-15-] 16 17 18 19 20 ...
>
> sprich die aktive seite immer in der mitte soweit das geht...
>
> weiss da jemand was?
Nix besonderes aber es macht es:
<?
/*
gegeben ist:
$total = Anzahl der Einträge die vorhanden sind.
Ermitelt zum Bsp. so:
$result = mysql_query("SELECT COUNT(*) FROM ".$table);
$total = mysql_result($result,0);
*/
// ------------------
$total = 249 ; // Achtung nur zum testen
// ------------------
$proseite = 10 ; // Anzahl der Eintraege pro Seite
$anzseiten = 10 ; // Anzahl der Links die angezeigt werden.
$seite = (isset($seite)) ? abs((int)$seite) : 1;
$seitentotal = (int)($total/$proseite) ;
$start = floor($seite - $anzseiten/2) ;
$start = $start <= 0 ? 1 : $start ;
$end = ($start + $anzseiten-1) ;
$end = $end >= $seitentotal ? $seitentotal : $end ;
// ausgabe der Links
if ($seite > 1)
printf ('<a href="seiten.php?seite=%s"><<<</a>
',$seite-1); // seiten.php anpassen
if ($start > 1)
printf ('<a href="seiten.php?seite=%s">%s</a>... ',1,1); //
seiten.php anpassen
for ($i = $start; $i <= $end ;$i++){
if($i==$seite){
printf ("=%s= ",$i); // kein Link da sind wir ja :-)
}else{
printf ('<a href="seiten.php?seite=%s">%s</a> ',$i,$i); //
seiten.php anpassen
}
}
if ($end < $seitentotal)
printf (' ...<a href="seiten.php?seite=%s">%s</a>
',$seitentotal,$seitentotal); // seiten.php anpassen
if ($seite < $seitentotal)
printf ('<a href="seiten.php?seite=%s">>>></a>
',$seite+1); // seiten.php anpassen
// ende der ausgabe
?>
Gruß
Christian
php::bar PHP Wiki - Listenarchive