Paginering

Er zijn diverse Paginering script te vinden, sommige zijn zo eenvoudig dat er geen rekening wordt gehouden met grote hoeveelheid pagina's:

Paginering

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:

Paginering

2. Een link naar de vorige/volgende pagina is instelbaar:

Paginering

3. Een link naar de eerste/laatste pagina is instelbaar:

Paginering

4. Bij meer dan x aantal pagina's onstaat er floating:

Paginering

5. Het aantal links voor en na de huidige pagina in floating is instelbaar (3):

Paginering


Voorbeeld
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>


Resultaat

Resultaat


Download: pagination.class.php


Zie ook: Paginering of Paginatie

Zoeken