locomputing
Paginationen 
Seitennummerierung: Daten aus DatenBank auf mehrere Seiten verteilen, wie geht das?
Beispiel: 30 Einträge in der Datenbank verteilt auf 15 Seiten.
Hier ein ganz einfaches Beispiel:
Einträge per Seite / variabel
<?php
$pagseite="2";
Variablen bestimmen
$leiste=isset($_GET['leiste']) ? $_GET['leiste'] : '';
$seite=isset($_GET['seite']) ? $_GET['seite'] : '0';
Entsprechende Datenbank Verbindung einfügen
Einträge zählen
$stmt=$msql->prepare("SELECT COUNT(*) FROM a_table");
$stmt->execute();
$number=$stmt->get_result()->fetch_row();
$number=$number[0];
$seiten=ceil($number/$pagseite);
$start=$seite * $pagseite;
?>
$stmt=$pdo->prepare("SELECT COUNT(*) FROM a_table");
$stmt->execute();
$number=$stmt->fetchColumn();
$seiten=ceil($number/$pagseite);
$start=$seite * $pagseite;
?>
Datenbank Abfrage
<?php
$stmt=$msql->prepare("SELECT spalte1, spalte2 FROM a_table ORDER BY id LIMIT $start, $pagseite");
$stmt->execute();
$result=$stmt->get_result();
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 ORDER BY id LIMIT $start, $pagseite");
$stmt->execute();
$stmt->bind_result($spalte1, $spalte2);
while($stmt->fetch())
{
echo $spalte1;
echo $spalte2;
}
<?php
$stmt=$pdo->prepare("SELECT spalte1, spalte2 FROM a_table ORDER BY id LIMIT $start, $pagseite");
$stmt->execute();
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 ORDER BY id LIMIT $start, $pagseite");
$stmt->bindColumn(1,$spalte1);
$stmt->bindColumn(2,$spalte2);
$stmt->execute();
while($stmt->fetch())
{
echo $spalte1;
echo $spalte2;
}
Objekt schließen einfügen
Verbindung beenden einfügen
?>
Seitenaufteilung
<?php
for ($i=0;$i < $seiten;$i++)
{
$now=$i + 1;
if ($i == $seite)
{
$leiste.='<td>['.$now.']</td>';
}
else
{
$leiste.='<td><a href="foo.php?seite='.$i.'">'.$now.'</a></td>';
}
}
?>
Seitenausgabe gehört in den Inhaltsbereich
<?php
echo'<table><tr>';
echo $leiste;
echo'</tr></table>';
?>
Eignet sich für etwa 2 bis ca. 20 Seitenaufteilungen, bei mehr als 20 Seitenaufteilungen könnte es Optische Probleme bei kleinen Auflösungen (Handy..) geben.
Verkürzte Darstellung: ohne Formatierung, kann etwa so aussehen: