Er zijn diverse Paginering script te vinden, sommige zijn zo eenvoudig dat er geen rekening wordt gehouden met grote hoeveelheid pagina's:
Zelf maak ik gebruik van een Pagination Module voor het Kohana Framework maar ik wil een standalone Pagination Library die voldoet aan de volgende eisen:
1. Niet oneindig veel pagina links:
2. Een link naar de vorige/volgende pagina is instelbaar:
3. Een link naar de eerste/laatste pagina is instelbaar:
4. Bij meer dan x aantal pagina's onstaat er floating:
5. Het aantal links voor en na de huidige pagina in floating is instelbaar (3):
require_once 'pagination.class.php';mysql_connect('localhost', 'root', 'root') or die(mysql_error()); mysql_select_db('davidvandertuijn') or die(mysql_error());
$oPagination = new Pagination;
$sql1 = "SELECT id, omschrijving FROM plaatsen";
$query1 = mysql_query($sql1) or die(mysql_error());
$total_items = mysql_num_rows($query1);
$oPagination->setCurrentPageKey('page'); $oPagination->setItemsPerPage(5); $oPagination->setTotalItems($total_items); $oPagination->initialize();
$sql2 = $sql1 . ' LIMIT '.intval($oPagination->getOffset()).', '.intval($oPagination->getItemsPerPage());
$query2 = mysql_query($sql2) or die(mysql_error()); ?> <html> <head> <style> p.pagination a { color: #3366CC; text-decoration: none; } p.pagination a:hover { color: #000000; text-decoration: underline; } p.pagination { font-family: "Lucida Grande", "Lucida Sans Unicode"; font-size: 14px; } </style> </head> <body> <table cellpadding=3 cellspacing=1 border=1> <tr> <th>id</th> <th>omschrijving</th> </tr> <?php while ($row = mysql_fetch_assoc($query2)) { ?> <tr> <td><?php echo $row['id']; ?></td> <td><?php echo $row['omschrijving']; ?></td> </tr> <?php } ?> <table> <p class="pagination"> <?php echo $oPagination->render(); ?> <span style="float: right"><?php echo $oPagination->getTotalItems(); ?> records</span> </p> </body> </html>
Download: pagination.class.php
Zie ook: Paginering of Paginatie