Hier mein Code
bestehend aus such.php und pager.obj.php
übernommen aus dem Tut im Forum
such.php
<?
// Objekt einbinden
include 'pager.obj.php';
include 'verbinden.php';
//db-Connection aufbauen
$link = mysql_connect($mysqlhost, $mysqluser, $mysqlpwd)
or die("Could not connect");
mysql_select_db($mysqldb)
or die("Could not select database");
//Pagingobjekt erzeugen
//@par 1: db-RessourceID - muss
//@par 2: Tabellenname - muss
//@par 3: Aktuelle Position - muss
//@par 4: Link - kann Dev: phpself
//@par 5: Zeilenanzahl - kann Dev: 10
//@par 6: Linker Bereich - kann Dev: 5
//@par 7: Rechter Berich - kann Dev: 5
$paging = new c_paging(& $link, "such",$_GET[page],'such.php?id=10',10,3,3);
//Daten ausgeben - mit getLimit die aktuelle Page wählen
//mal eine Ausgabe dazwischenschalten
$sql = " SELECT * FROM such where Titel like '%$sw%' or Info like '%$sw%' or Kat like '%$sw%' or URL like '%$sw%' or Stich like '%$sw%'order by Titel".$paging->getLimit();
$result = mysql_query($sql);
$reihen = mysql_num_rows($result);
//und durchloopen…
echo "<table>";
while ($row = mysql_fetch_object($result))
{
echo "<tr><td>".$row->Titel."</td><td>".$row->Info."</td><td>".$row->URL."</td><tr>";
}
echo "</table>";
//Pagingliste ausgeben
echo $paging->drawPages();
?>
pager.obj.php
<?
class c_paging
{
var $database; //Link zur Datenbankressouce
var $pagingtable; // Name der Tabelle die gepagt wird
var $link; // Seite auf die verlinkt wird
var $max; //Maximale Anzahl der Datensätze
var $maxpages; //Maximale Anzahl an Seiten
var $rows; //Anzahl der ausgegebenen Zeilen
var $position; //Aktuelle Zeigerposition
var $left; // Anzahl Seiten-Links links von aktueller Seite
var $right; // Anzahl Seiten-Links rechts von aktueller Seite
function c_paging($db, $table,$position,$link='',$rows=10,$left=5,$right=5)
{
//Werte zuweisen
$this->database = $db;
$this->pagingtable= $table;
$this->position = (!$position)? 1:$position;
$this->rows = $rows;
$this->left = $left;
$this->right = $right;
//Link vorbereiten
$this->__prepLink($link);
//Maximale Anzahl zählen und Seiten ermitteln
$this->__countRows();
}
function __countRows()
{
//zählt die maximale Anzahl der Zeilen
//und ermittelt die benötigten Seiten
$sql = "SELECT count(*) FROM ".$this->pagingtable;
$result = @ mysql_query($sql,$this->database);
$row = @ mysql_fetch_row($result);
$this->max = $row[0];
//Anzahl der Seiten ermitteln
//ceil deshalb, damit auch noch die letzten Zeilen der Tabelle mitgenommen werden
$this->maxpages = ceil($row[0] / $this->rows);
}
function __prepLink($link)
{
//Dient dazu, dass die Pagingvariable richtig an den Link angehängt wird
if(!$link)
//wenn nix angegeben wurde, dann nehmen wir mal an, dass auf sich selbst referenziert wird
$this->link = $_SERVER[PHP_SELF]."?";
else
//wurde ein Link übergeben, dann müssen wir darauf achten, dass der Parameter richtig angehängt wird.
//Dazu schauen wir nach, ob bereits ein '?' in dem string ist = es sind bereits Parameter vorhanden
//wenn das der Fall ist, hängen wir uns mit '&' dran ansonsten bauen wir ein '?' dran
$this->link = (strstr($link, "?"))? $link.'&': $link.'?';
}
function drawList()
{
//Laufvariable initialisieren
$i=1; //Start
$i_ende=$this->maxpages; //Ende
$prevdots='';
$nextdots='';
//hier wird die Postition des Listenzählers im Bezug auf die Gesamtliste errechnet.
//wenn die Seitenanzahl grösser als links und rechts zusammen ist, dann müssen wir die Postition errechnen
if($this->maxpages > ($this->left+$this->right))
{
//Ist die aktuelle Seitenposition grösser als der linke Standardwert
if($this->position > $this->left)
{
//Dann wird der Startwert der Laufwvariable auf Aktuelle Postition - linker Standardwert gesetzt
$i = $this->position - $this->left;
$prevdots=' ... ';
// Wenn die Aktuelle Position + rechter Standardwert kleiner als die Maximale Seitenanzahl ist
if(($this->position + $this->right) < $this->maxpages)
{
//Dann wird der Endewert der Laufvariable auf aktuelle Position + rechter Standardwert gesetzt
$i_ende = $this->position + $this->right;
$nextdots=' ... ';
}
else
//Wenn die Aktuelle Postion gegen Ende der Anzahl der Seiten geht
//Dann wird der Startwert der Laufwvariable auf maxpages - summe der links/rechts Standardwerte gesetzt
//Das wird dazu benötigt, dass immer die gleiche Anzahl an Seiten angezeigt wird.
$i = $i_ende - ($this->left+$this->right);
}
else
//Seitenposition bewegt sich auf den Anfang der Seite zu.
//Dann wird der Endewert der Laufwvariable auf die summe der links/rechts Standardwerte gesetzt
//Das wird dazu benötigt, dass immer die gleiche Anzahl an Seiten angezeigt wird.
{
$i_ende = ($this->left+$this->right);
$nextdots=' ... ';
}
}
//der Loop, der die Page-Links aufbaut
//hier können dann die gestalterischen Fähigkeiten ausgelebt werden
for ($i; $i <= $i_ende; $i++)
{
//Aktuelle Position bestimmen - und falls es gleich der abgearbeiteten ist,
//dann speziell als 'aktuelle Seite anzeigen lassen
if($i == $this->position)
$temp.= "<span class=\"currentpage\"> [".$i."]</span>";
else
//ansonsten den Link mit der Seite aufbauen
$temp.= " <a class=\"links\" href=".$this->link."page=".$i.$sw= '%$sw%'.">".$i."</a>";
}
return "<span class=\"page\">".$prevdots.$temp.$nextdots."</span>";
}
function drawNext()
{
//nächste Seite - Funktion
if($this->position < $this->maxpages)
$temp = " <a class=\"links\" href=".$sw= '%$sw%'.$this->link."page=".($this->position + 1)."></a>";
else
$temp = " ";
return "<span class=\"page\">".$temp."</span>";
}
function drawLast()
{
//letzte Seite - Funktion
if($this->position < $this->maxpages)
$temp = " <a class=\"links\" href=".$sw= '%$sw%'.$this->link."page=".$this->maxpages.">»</a>";
else
$temp = " »";
return "<span class=\"page\">".$temp."</span>";
}
function drawPrev()
{
//vorige Seite - Funktion
if($this->position > 1)
$temp = " <a class=\"links\" href=".$sw= '%$sw%'.$this->link."page=".($this->position - 1)."></a>";
else
$temp = " ";
return "<span class=\"page\">".$temp."</span>";
}
function drawFirst()
{
//Erste Seite - Funktion
if($this->position > 1)
$temp = " <a class=\"links\" href=".$sw= '%$sw%'.$this->link."page=1>«</a>";
else
$temp = " «";
return "<span class=\"page\">".$temp."</span>";
}
function drawPages()
{
// Zusammenfassung der Ausgabefunktionen
if(!$this->max) return '';
$temp.=$this->drawFirst();
$temp.=$this->drawPrev();
$temp.=$this->drawList();
$temp.=$this->drawNext();
$temp.=$this->drawLast();
return "<div class=\"box\">".$temp."</div>";
}
function getLimit()
{
//Stellt den LIMIT - Teistring für die DB Query zusammen
$nextpos = ($this->position - 1)*$this->rows;
return " LIMIT ".$nextpos.", ".$this->rows;
}
}
?>
kannst du hiermit was anfangen.
Bruster