Leichte Pagination
Mit Seitenwahl über ... und Enter.
Absolut JavaScript unabhängig!
Absolut JavaScript unabhängig!
<?php
Variablen bestimmen
$page = isset($_GET['page']) &&
is_numeric($_GET['page']) ? $_GET['page'] : 1;
is_numeric($_GET['page']) ? $_GET['page'] : 1;
Einträge per Seite / variabel
$pagseite = 3;
$pagsite="foo.php";
$get_site="?page";
$get_site="?page";
Einträge zählen
$stmt=$msql->prepare("SELECT id FROM a_table");
$stmt->execute();
$result=$stmt->get_result();
$total_pages=$result->num_rows;
$stmt->execute();
$result=$stmt->get_result();
$total_pages=$result->num_rows;
$stmt=$pdo->prepare("SELECT id
FROM a_table");
$stmt->execute();
$total_pages=$stmt->rowCount();
FROM a_table");
$stmt->execute();
$total_pages=$stmt->rowCount();
Datenbank abfrage
$stmt=$msql->prepare("SELECT spalte1, spalte2
FROM a_table LIMIT ?,?");
$start=($page-1) * $pagseite;
$stmt->bind_param('ii',$start,$pagseite);
$stmt->execute();
$result=$stmt->get_result();
FROM a_table LIMIT ?,?");
$start=($page-1) * $pagseite;
$stmt->bind_param('ii',$start,$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
$stmt=$msql->prepare("SELECT spalte1, spalte2
FROM a_table LIMIT ?,?");
$start=($page-1) * $pagseite;
$stmt->bind_param('ii',$start,$pagseite);
$stmt->bind_result($spalte1, $spalte2);
$stmt->execute();
FROM a_table LIMIT ?,?");
$start=($page-1) * $pagseite;
$stmt->bind_param('ii',$start,$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
LIMIT :start,:pagseite
');
$start=($page-1) * $pagseite;
$stmt->bindParam(':start',$start,PDO::PARAM_INT);
$stmt->bindParam(':pagseite',$pagseite,PDO::PARAM_INT);
$stmt->execute();
SELECT spalte1,spalte2
FROM a_table
LIMIT :start,:pagseite
');
$start=($page-1) * $pagseite;
$stmt->bindParam(':start',$start,PDO::PARAM_INT);
$stmt->bindParam(':pagseite',$pagseite,PDO::PARAM_INT);
$stmt->execute();
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
LIMIT :start,:pagseite
');
$start=($page-1) * $pagseite;
$stmt->bindParam(1,$start, 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
LIMIT :start,:pagseite
');
$start=($page-1) * $pagseite;
$stmt->bindParam(1,$start, 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;
}
Immer die richtige max= Seitenzahl
$maxpage = $total_pages / $pagseite;
Seitenaufteilung anzeigen
echo'<table>';
if (ceil($total_pages / $pagseite) > 0)
{
echo'<tr>';
if ($page > 1)
{
if (ceil($total_pages / $pagseite) > 0)
{
echo'<tr>';
if ($page > 1)
{
?>
<td class="prevs">
<a href="<?php echo $pagsite.$get_site;?>=1"> ❮❮ </a>
</td>
<a href="<?php echo $pagsite.$get_site;?>=1"> ❮❮ </a>
</td>
<td class="prev">
<a href="<?php echo $pagsite.$get_site;?>=
<a href="<?php echo $pagsite.$get_site;?>=
<?php
echo $page-1
?>
"> < </a>
</td>
</td>
<?php
}
if ($page > 3)
{
if ($page > 3)
{
?>
<td class="start">
<a href="<?php echo $pagsite.$get_site;?>=1">1</a>
</td>
<a href="<?php echo $pagsite.$get_site;?>=1">1</a>
</td>
<td class="dots">
<div class="inf_txt">Sprung zu Seite</div>
<div class="info_text">Seitenzahl eingeben, Bestätigen.</div>
<form>
<input type="number" placeholder="..." class="numbi" min="1" max="<?php echo $maxpage;?>" name="page" value="...">
</form>
</td>
<div class="inf_txt">Sprung zu Seite</div>
<div class="info_text">Seitenzahl eingeben, Bestätigen.</div>
<form>
<input type="number" placeholder="..." class="numbi" min="1" max="<?php echo $maxpage;?>" name="page" value="...">
</form>
</td>
<?php
}
if ($page-2 > 0)
{
if ($page-2 > 0)
{
?>
<td class="page">
<a href="<?php echo $pagsite.$get_site;?>=
<a href="<?php echo $pagsite.$get_site;?>=
<?php
echo $page-2
?>
">
<?php
echo $page-2
?>
</a>
</td>
</td>
<?php
}
if ($page-1 > 0)
{
if ($page-1 > 0)
{
?>
<td class="page">
<a href="<?php echo $pagsite.$get_site;?>=
<a href="<?php echo $pagsite.$get_site;?>=
<?php
echo $page-1
?>
">
<?php
echo $page-1
?>
</a>
</td>
</td>
<?php
}
?>
<td class="currentpage"><span><?php echo $page;?></span>
<div class="inf_ktxt">Sprung zu Seite</div>
<div class="info_ktext">Klick oder Doppelklick, Seitenzahl wählen, Bestätigen.</div>
<div class="inf_ktxt">Sprung zu Seite</div>
<div class="info_ktext">Klick oder Doppelklick, Seitenzahl wählen, Bestätigen.</div>
<form>
<input type="number" class="numbi"
min="1" max="<?php echo $maxpage;?>"
name="page" value="<?php echo $page;?>">
</form>
</td>
<input type="number" class="numbi"
min="1" max="<?php echo $maxpage;?>"
name="page" value="<?php echo $page;?>">
</form>
</td>
<td class="little">
von <?php echo $maxpage;?>
</td>
von <?php echo $maxpage;?>
</td>
<?php
if ($page+1 < ceil($total_pages / $pagseite)+1)
{
{
?>
<td class="page">
<a href="<?php echo $pagsite.$get_site;?>=
<a href="<?php echo $pagsite.$get_site;?>=
<?php
echo $page+1
?>
">
<?php
echo $page+1
?>
</a>
</td>
</td>
<?php
}
if ($page+2 < ceil($total_pages / $pagseite)+1)
{
if ($page+2 < ceil($total_pages / $pagseite)+1)
{
?>
<td class="page">
<a href="<?php echo $pagsite.$get_site;?>=
<a href="<?php echo $pagsite.$get_site;?>=
<?php
echo $page+2
?>
">
<?php
echo $page+2
?>
</a>
</td>
</td>
<?php
}
if ($page < ceil($total_pages / $pagseite)-2)
{
if ($page < ceil($total_pages / $pagseite)-2)
{
?>
<td class="dots">
<div class="inf_txt">Sprung zu Seite</div>
<div class="info_text">Seitenzahl eingeben, Bestätigen.</div>
<form>
<input type="number" placeholder="..." class="numbi" min="1" max="<?php echo $maxpage;?>" name="page" value="...">
</form>
</td>
<div class="inf_txt">Sprung zu Seite</div>
<div class="info_text">Seitenzahl eingeben, Bestätigen.</div>
<form>
<input type="number" placeholder="..." class="numbi" min="1" max="<?php echo $maxpage;?>" name="page" value="...">
</form>
</td>
<td class="end">
<a href="<?php echo $pagsite.$get_site;?>=
<a href="<?php echo $pagsite.$get_site;?>=
<?php
echo ceil($total_pages / $pagseite)
?>
">
<?php
echo ceil($total_pages / $pagseite)
?>
</a>
</td>
</td>
<?php
}
if ($page < ceil($total_pages / $pagseite))
{
if ($page < ceil($total_pages / $pagseite))
{
?>
<td class="next">
<a href="<?php echo $pagsite.$get_site;?>=
<a href="<?php echo $pagsite.$get_site;?>=
<?php
echo $page+1
?>
"> > </a>
</td>
</td>
<td class="nexts">
<a href="<?php echo $pagsite.$get_site;?>=<?php echo $maxpage;?>"> ❯❯ </a>
</td>
<a href="<?php echo $pagsite.$get_site;?>=<?php echo $maxpage;?>"> ❯❯ </a>
</td>
<?php
}
?>
</tr>
</table>
</table>
<?php
}
?>
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: