pdo statements
Einfache Pagination
Hier ein weiteres Beispiel:
<?php
Einträge per Seite / variabel
$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
$stmt=$msql->prepare("SELECT spalte1,spalte2 FROM a_table LIMIT $start, $pagseite");
$stmt->execute();
$result=$stmt->get_result();
if ($result->num_rows > 0)
{
Daten ausgabe
while ($row=$result->fetch_assoc())
{
echo $row['spalte1'];
echo $row['spalte2'];
}
}
oder gleich als Variablen ausgeben
$stmt=$msql->prepare("SELECT spalte1,spalte2 FROM a_table LIMIT $start, $pagseite");
$stmt->execute();
$result=$stmt->get_result();
$stmt->bind_result($spalte1,$spalte2);
if ($stmt->num_rows > 0)
{
Daten ausgabe
while($stmt->fetch())
{
echo $spalte1;
echo $spalte2;
}
}
$stmt=$pdo->prepare("SELECT spalte1, spalte2 FROM a_table LIMIT $start, $pagseite");
$stmt->execute();
if ($stmt->rowCount() > 0)
{
Daten ausgabe
while ($row=$stmt->fetch())
{
echo $row['spalte1'];
echo $row['spalte2'];
}
}
oder gleich als Variablen ausgeben
$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)
{
Daten ausgabe
while ($stmt->fetch())
{
echo $spalte1;
echo $spalte2;
}
}
Einträge zählen
$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);
$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
1x Seitennamen ändern wenn sie nicht foo.php heißt!
Seitenaufteilung
if ($seiten > 1)
{
for ($i=1;$i <= $seiten;$i++)
{
if ($i == $seite)
{
$leiste.='<td class="currentpage">['.$i.']</td>';
}
else
{
$leiste.='<td><a href="foo.php?seite='.$i.'">'.$i.'</a></td>'; }
}
}
2x Seitennamen ändern wenn sie nicht foo.php heißt!
Seitenausgabe gehört in den Inhaltsbereich
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:
Top
Top