phpbar.de logo

Mailinglisten-Archive

[php] Advanced blaettern in Suchtreffern

[php] Advanced blaettern in Suchtreffern

Christian Hamacher php_(at)_phpcenter.de
Tue, 18 Dec 2001 18:25:25 +0100


 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">&lt;&lt;&lt;</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">&gt;&gt;&gt;</a>
',$seite+1); // seiten.php anpassen
// ende der ausgabe

?>

Gruß
  Christian


php::bar PHP Wiki   -   Listenarchive