locomputing
Einfache Pagination 
Hier ein weiteres Beispiel:
Einträge per Seite / variabel
<?php
$pagseite="2";
Variablen bestimmen
$leiste=isset($_GET['leiste']) ? $_GET['leiste'] : '';
if (isset($_GET['seite']) ? $_GET['seite'] : '')
{
$seite=isset($_GET['seite']) ? $_GET['seite'] : '';
}
else
{
$seite=1;
}
$start=($seite - 1) * $pagseite;
?>
Entsprechende Datenbank Verbindung einfügen
Datenbank Abfrage
<?php
$stmt=$msql->prepare("SELECT spalte1, spalte2 FROM a_table LIMIT $start, $pagseite");
$stmt->execute();
$result=$stmt->get_result();
if ($result->num_rows > 0)
{
while ($row=$result->fetch_assoc())
{
echo $row['spalte1'];
echo $row['spalte2'];
}
}
?>
oder gleich als Variablen ausgeben
<?php
$stmt=$msql->prepare("SELECT spalte1, spalte2 FROM a_table LIMIT $start, $pagseite");
$stmt->execute();
$result=$stmt->get_result();
$stmt->bind_result($spalte1, $spalte2, $newdatum);
if ($stmt->num_rows > 0)
{
while($stmt->fetch())
{
echo $spalte1;
echo $spalte2;
}
}
?>
<?php
$stmt=$pdo->prepare("SELECT spalte1, spalte2 FROM a_table LIMIT $start, $pagseite");
$stmt->execute();
if ($stmt->rowCount() > 0)
{
while ($row=$stmt->fetch())
{
echo $row['spalte1'];
echo $row['spalte2'];
}
}
?>
oder gleich als Variablen ausgeben
<?php
$stmt=$pdo->prepare("SELECT spalte1, spalte2 FROM a_table LIMIT $start, $pagseite");
$stmt->bindColumn(1,$spalte1);
$stmt->bindColumn(2,$spalte2);
$stmt->execute();
if ($stmt->rowCount() > 0)
{
while ($stmt->fetch())
{
echo $spalte1;
echo $spalte2;
}
}
?>
Einträge zählen
<?php
$stmt=$msql->prepare("SELECT COUNT(*) AS alle FROM a_table");
$stmt->execute();
$result=$stmt->get_result();
$row=$result->fetch_assoc();
$number=$row["alle"];
$seiten=ceil($number/$pagseite);
<?php
$stmt=$pdo->prepare("SELECT COUNT(*) AS alle FROM a_table");
$stmt->execute();
$row=$stmt->fetch();
$number=$row["alle"];
$seiten=ceil($number/$pagseite);
Objekt schließen einfügen
Verbindung beenden einfügen
?>
Seitenaufteilung
<?php
if ($seiten > 1)
{
for ($i=1;$i <= $seiten;$i++)
{
if ($i == $seite)
{
$leiste.='<td>['.$i.']</td>';
}
else
{
$leiste.='<td><a href="foo.php?seite='.$i.'">'.$i.'</a></td>'; }
}
}
?>
Seitenausgabe gehört in den Inhaltsbereich
<?php
echo'<table><tr>';
if($seite != 1)
{
echo'<td><a href="foo.php?seite='.($seite - 1).'"> < </a></td>';
}
echo $leiste;
if($seite != $seiten)
{
echo'<td><a href="foo.php?seite='.($seite + 1).'"> > </a></td>';
}
echo'</tr></table>';
?>
Eignet sich für etwa 2 bis ca. 20 Seitenaufteilungen, bei mehr als 18 Seitenaufteilungen könnte es Optische Probleme bei kleinen Auflösungen (Handy..) geben.
Verkürzte Darstellung: ohne Formatierung, kann etwa so aussehen: