vor / zurück -> mehre seiten anziegen !

darki

Mitglied
hi jungs und mädls

ich hab ein problemchen oder ich checks mal einfach wieder nicht.

ich lese den inhalt aus einer DB aus und hab es soweit das man mit
index.php?site=1 .. 2... 3 hinundher blättern kann. ich will das aber ned mit einen vor und zurück machen sondern er soll die seitenm zahlen unten hinschreiben und das ganz so wie bei google z.b das er immer 5 davor und 5 nach der aktuellen seite anzeigt.

man ist auf seite 5 dann schaut da so aus.

1 2 3 4 5 6 7 8 9 10

bei 6

ist die 1 weg und die 11 da.

HELP ME PLEASE !!
 
PHP:
/*
 $num : Anzahl der Einträge (mysql_num_rows() oder so)
 $seite : Seitenvariable
*/

if(!$seite)$seite=1;    //Falls Seite leer ist, Seite = 1
$perpage = 15;          //Einträge pro Seite
if($num > $perpage)     //Seitenzahlen nur bei >1 Seiten
{
 echo "Seite: ";
 for($x=1;$x<ceil($num/$perpage)
 {
  if($seite==$x) echo " <b>$x</b>";   // Aktuelle Seite nicht als Link sondern Fett zeigen.
  else echo " <a href='datei.php?seite=$x' target='_top'>$x</a>";  //Link zur Seite $x
 }
}

Hab ich mal so aus dem Kopf hingeschrieben, müsste soweit richtig sein, kleinere Fehler nicht ausgeschloßen.

scope.

edit: ups, hat mich wohl verlesen, dann müsstest du die for-Schleife ein wenig abändern.
 
scope: wie abändern?? das seitenweise ist mir eh alles klar deswegen hab ich ja ned gefragt hier sondern wie ich das lösen kann mit dem nicht vor/zurück sondern 1,2,3,4,5,6 wobei er immer nur 5 vor und nach der aktuellen seite anzeigt
 
Zuletzt bearbeitet:
dann machst du´s so:

PHP:
/*
 $num : Anzahl der Einträge (mysql_num_rows() oder so)
 $seite : Seitenvariable
*/

if(!$seite)$seite=1;    //Falls Seite leer ist, Seite = 1
$perpage = 15;          //Einträge pro Seite
if($num > $perpage)     //Seitenzahlen nur bei >1 Seiten
{
 echo "Seite: ";

 $page_num = ceil($num/$perpage);   // Seitenanzahl
 if($page_num>11)           // Wenn er das mit dem 5 vor und nach machen soll
 {
  if($seite<6){ $x=1; $last_page = 11; }
  elseif($seite>($page_num-6)) { $x = $page_num-11; $last_page = $page_num; }
  else { $x = $seite - 5; $lastpage = $seite + 5 }
 }
 else { $x = 1; $lastpage = $page_num; }

 for($x;$x<$lastpage; $x++)
 {
  if($seite==$x) echo " <b>$x</b>";   // Aktuelle Seite nicht als Link sondern Fett zeigen.
  else echo " <a href='datei.php?seite=$x' target='_top'>$x</a>";  //Link zur Seite $x
 }
}

könnte gehen, hat´s nicht ausprobieren können, aber versuchs mal.
kann aber durchaus ein logischer fehler drin sein, hab ich auch eben aus dem kopf gemacht.

scope.
 
Zurück