Leichte Pagination
Hier ein leichtes Beispiel:
<?php
Entsprechende Datenbank Verbindung einfügen
Variablen bestimmen
$page=isset($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 1;
Einträge per Seite / variabel
$pagseite = 2;
1x Seitennamen ändern wenn sie nicht foo.php heißt!
$pagsite = "foo.php";
Einträge zählen
$total_pages=$msql->query('
SELECT spalte1, spalte2
FROM a_table
')->num_rows;
SELECT spalte1, spalte2
FROM a_table
')->num_rows;
$total_pages=$pdo->query('
SELECT spalte1,spalte2
FROM a_table
')->rowCount();
SELECT spalte1,spalte2
FROM a_table
')->rowCount();
Datenbank abfrage
if($stmt=$msql->prepare('
SELECT spalte1, spalte2
FROM a_table
ORDER BY id
LIMIT ?,?
'))
{
$calc_page=($page-1) * $pagseite;
$stmt->bind_param('ii',$calc_page,$pagseite);
$stmt->execute();
$result=$stmt->get_result();
SELECT spalte1, spalte2
FROM a_table
ORDER BY id
LIMIT ?,?
'))
{
$calc_page=($page-1) * $pagseite;
$stmt->bind_param('ii',$calc_page,$pagseite);
$stmt->execute();
$result=$stmt->get_result();
Daten ausgabe
while($row=$result->fetch_assoc())
{
echo $row['spalte1'];
echo $row['spalte2'];
}
}
{
echo $row['spalte1'];
echo $row['spalte2'];
}
}
oder gleich als Variablen ausgeben
if($stmt=$msql->prepare('
SELECT spalte1, spalte2
FROM a_table
ORDER BY id
LIMIT ?,?
'))
{
$calc_page=($page-1) * $pagseite;
$stmt->bind_param('ii', $calc_page, $pagseite);
$stmt->bind_result($spalte1, $spalte2);
$stmt->execute();
SELECT spalte1, spalte2
FROM a_table
ORDER BY id
LIMIT ?,?
'))
{
$calc_page=($page-1) * $pagseite;
$stmt->bind_param('ii', $calc_page, $pagseite);
$stmt->bind_result($spalte1, $spalte2);
$stmt->execute();
Daten ausgabe
while($stmt->fetch())
{
echo $spalte1;
echo $spalte2;
}
}
{
echo $spalte1;
echo $spalte2;
}
}
$stmt=$pdo->prepare('
SELECT spalte1,spalte2
FROM a_table
ORDER BY id
LIMIT ?,?
');
$calc_page=($page-1) * $pagseite;
$stmt->execute(array($calc_page, $pagseite));
SELECT spalte1,spalte2
FROM a_table
ORDER BY id
LIMIT ?,?
');
$calc_page=($page-1) * $pagseite;
$stmt->execute(array($calc_page, $pagseite));
Daten ausgabe
while($row=$stmt->fetch())
{
echo $row['spalte1'];
echo $row['spalte2'];
}
{
echo $row['spalte1'];
echo $row['spalte2'];
}
oder gleich als Variablen ausgeben
$stmt=$pdo->prepare('
SELECT spalte1,spalte2
FROM a_table
ORDER BY id
LIMIT ?,?
');
$calc_page=($page-1) * $pagseite;
$stmt->bindParam(1,$calc_page, PDO::PARAM_INT);
$stmt->bindParam(2,$pagseite, PDO::PARAM_INT);
$stmt->bindColumn(1,$spalte1);
$stmt->bindColumn(2,$spalte2);
$stmt->execute();
SELECT spalte1,spalte2
FROM a_table
ORDER BY id
LIMIT ?,?
');
$calc_page=($page-1) * $pagseite;
$stmt->bindParam(1,$calc_page, PDO::PARAM_INT);
$stmt->bindParam(2,$pagseite, PDO::PARAM_INT);
$stmt->bindColumn(1,$spalte1);
$stmt->bindColumn(2,$spalte2);
$stmt->execute();
Daten ausgabe
while ($stmt->fetch())
{
echo $spalte1;
echo $spalte2;
}
{
echo $spalte1;
echo $spalte2;
}
Seitenaufteilung anzeigen
if (ceil($total_pages/$pagseite) > 0)
{
{
?>
<table>
<tr>
<tr>
<?php
if ($page > 1)
{
{
?>
<td><a href="<?php echo $pagsite;?>?page=
<?php
echo $page-1
?>
"> < </a></td>
<?php
}
if ($page > 3)
{
if ($page > 3)
{
?>
<td>
<a href="<?php echo $pagsite;?>?page=1">1</a></td>
<td>...</td>
<a href="<?php echo $pagsite;?>?page=1">1</a></td>
<td>...</td>
<?php
}
if ($page-2 > 0)
{
if ($page-2 > 0)
{
?>
<td>
<a href="<?php echo $pagsite;?>?page=
<a href="<?php echo $pagsite;?>?page=
<?php
echo $page-2
?>
">
<?php
echo $page-2
?>
</a></td>
<?php
}
if ($page-1 > 0)
{
if ($page-1 > 0)
{
?>
<td>
<a href="<?php echo $pagsite;?>?page=
<a href="<?php echo $pagsite;?>?page=
<?php
echo $page-1
?>
">
<?php
echo $page-1
?>
</a></td>
<?php
}
?>
<td class="currentpage">[
<?php
echo $page
?>
]</td>
<?php
if ($page+1 < ceil($total_pages / $pagseite)+1)
{
{
?>
<td>
<a href="<?php echo $pagsite;?>?page=
<a href="<?php echo $pagsite;?>?page=
<?php
echo $page+1
?>
">
<?php
echo $page+1
?>
</a></td>
<?php
}
if ($page+2 < ceil($total_pages / $pagseite)+1)
{
if ($page+2 < ceil($total_pages / $pagseite)+1)
{
?>
<td>
<a href="<?php echo $pagsite;?>?page=
<a href="<?php echo $pagsite;?>?page=
<?php
echo $page+2
?>
">
<?php
echo $page+2
?>
</a></td>
<?php
}
if ($page < ceil($total_pages / $pagseite)-2)
{
if ($page < ceil($total_pages / $pagseite)-2)
{
?>
<td>...</td>
<td>
<a href="<?php echo $pagsite;?>?page=
<td>
<a href="<?php echo $pagsite;?>?page=
<?php
echo ceil($total_pages / $pagseite)
?>
">
<?php
echo ceil($total_pages / $pagseite)
?>
</a></td>
<?php
}
if ($page < ceil($total_pages/$pagseite))
{
if ($page < ceil($total_pages/$pagseite))
{
?>
<td>
<a href="<?php echo $pagsite;?>?page=
<a href="<?php echo $pagsite;?>?page=
<?php
echo $page+1
?>
"> > </a></td>
<?php
}
?>
</tr>
</table>
</table>
<?php
}
Objekt schließen einfügen
Verbindung beenden einfügen
?>
Eignet sich für hunderte von Seitenaufteilungen.
Verkürzte Darstellung: ohne Formatierung,
kann etwa so aussehen:
Verkürzte Darstellung: ohne Formatierung,
kann etwa so aussehen: