Seitenscript erweitern

ljungi

Grünschnabel
Hallo!

Ich habe seit einiger Zeit ein Seitenscript.
Nun habe ich das Problem, dass es immer mehr Seiten werden..
Es ist nicht gerade sehr schön, wenn man bei 5 Daten pro Seite und 15000 Daten in der Datenbank dann 3000 Seitenzahlen ausgegeben bekommt.

Ich würde das gerne so handhaben:

<< < 1 2 3 4 5 6 7 8 9 10 > >>

Wenn man auf >> klickt soll dann die Ausgabe so sein:

<< < 11 12 13 14 15 16 17 18 19 20 > >>

Und so weiter und so fort, bis dann:

<< 1111 1112 1113

Wie kann ich das bei meinem Script erweitern?
Habe schon diverses probiert, bekomme es aber nicht hin.

PHP:
function listpages($eanz,$pro,$link){

	global $pages;
	if ($eanz != 0){
	 $sanz = ceil($eanz / $pro);

          if($_GET['seite'] > ($sanz - 1)) $_GET['seite'] = ($sanz - 1);
          elseif($_GET['seite'] < 0) $_GET['seite'] = 0;
  
          if ($_GET['seite'] != 0) print("<span class=\"small\"><a href='".$link."&seite=" . ($_GET['seite'] - 1) . "'>&laquo; Zur&uuml;ck</a></span>");
          else print("<span class=\"small\">&laquo; Zur&uuml;ck</span> ");
          for($x=1;$x <= $sanz;$x++){
            if ($x == ($_GET['seite']+1)) print("<a href='".$link."&seite=" . ($x-1) . "'> <u>". $x ."</u></a> ");
            else print(" <span class=\"small\"><a href='".$link."&seite=" . ($x-1) . "'> ". $x ."</a></span> ");
          }
          if ($_GET['seite'] != ($sanz-1)) print(" <span class=small><a href='".$link."&seite=" . ($_GET['seite'] + 1) . "'>Vor &raquo;</a> <a href='".$link."&seite=" . ($sanz - 1) ."'>Ende &raquo;&raquo;</a></span>");
           else print(" <span class=\"small\">Vor &raquo;</span> ");
          }
        return $pages;
}

Man müsste irgendwie die Ausgabe limitieren, also von 0 - 10 und 10 - 20 etc..
Nur leider bin ich irgendwie zu Beschränkt dazu (auch Mathematisch ;-] )

Danke schon mal!
 
PHP:
function listpages($eanz,$pro,$link){

    global $pages;
    if ($eanz != 0){
     $sanz = $eanz;

          if($_GET['seite'] > ($sanz - 1)) $_GET['seite'] = ($sanz - 1);
          elseif($_GET['seite'] < 0) $_GET['seite'] = 0;

          if ($_GET['seite'] != 0) print("<span class=\"small\"><a href='".$link."&seite=" . ($_GET['seite'] - 1) . "'>&laquo; Zur&uuml;ck</a></span>");
          else print("<span class=\"small\">&laquo; Zur&uuml;ck</span> ");
          for($x=$_GET['seite'];$x <= ($_GET['seite'] + $pro);$x++){
            if($x <= ($sanz- 1)) {
                if ($x == ($_GET['seite']+1)) print("<a href='".$link."&seite=" . ($x-1) . "'> <u>". $x ."</u></a> ");
                else print(" <span class=\"small\"><a href='".$link."&seite=" . ($x-1) . "'> ". $x ."</a></span> ");
            }
          }
          if ($_GET['seite'] != ($sanz-1)) print(" <span class=small><a href='".$link."&seite=" . ($_GET['seite'] + 1) . "'>Vor &raquo;</a> <a href='".$link."&seite=" . ($sanz - 1) ."'>Ende &raquo;&raquo;</a></span>");
           else print(" <span class=\"small\">Vor &raquo;</span> ");
          }
        return $pages;
    }

Ich musste nur ein wenig ändern und es funktioniert :)
$eanz - gibt die anzahl an seiten an
$pro - gibt die anzahl an seiten die angezeigt werden an also z.B. 5 (Dann werden immer nur 5 nummern angezeigt)
 
Zuletzt bearbeitet:
hast du mal gesehen von wann das das Thema ist ( 2005 ) .
Der Code ist sowieso nicht mehr aktuell.
Einfach mal nach Pagination googeln dann findet sich schon was neues / aktuelleres / fertiges
 
Zurück