L’impaginazione è un compito in cui spesso ci si imbatte, ed ecco che ho creato uno script facile e veloce per impaginare i risultati nelle nostre pagine PHP.
Ho creato quindi uno script che include 4 metodi:
- String getEntries($startingIndex, $entryPerPage, $table, $where=””)
- String getSimpleFooter($startingIndex, $entryPerPage, $page, $table)
- String getNumberedFooter($startingIndex, $entryPerPage, $table)
- String buildEntry($values, $i)
Il primo metodo mi ritorna il codice HTML delle $entryPerPage entry, dalla tabella $table, che voglio visualizzare nella mia pagina, partendo dall’indice $startingIndex fornito come parametro. Il parametro $where è opzionale e serve, se utilizzato, per imporre alla query ordinamenti o vincoli particolari.
Il secondo metodo ritorna un footer della paginazione, cioè una semplice barra di navigazione con precedente e successivo per navigare le entry. I primi due parametri li conosciamo già, mentre $page è l’indicazione della pagina corrente (da 0 a N-1) e $table lo conosciamo pure.
Il quarto metodo è quello che definisce il codice HTML utilizzato nel getEntries e che stabilisce il layout HTML da utilizzare. Questa separazione è utile affinchè la paginazione non dipenda dalla visualizzazione. $values è l’array dei valori da inserire nel codice HTML di output, mentre $i è l’indice dell’entry corrente e può servire se, ad esempio, è necessario stampare le entry pari con uno stile e le entry dispari con un altro.
Ecco il codice sorgente di una possibile applicazione:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>A page</title>
</head>
<body>
<?php
$host=’localhost’;
$user=’root’;
$password=’aPassword’;
$database=’aDbName’;
mysql_connect($host, $user, $password) or die(mysql_error());
mysql_select_db($database) or die(mysql_error());
include(‘paginator.php’);
$currentPage=(int)$_GET[‘page’];
$entriesPerPage=6;
$myTable=’my_db_table’;
$myPage=’my-page.php?page=’;
echo getEntries($currentPage, $entriesPerPage, $myTable);
echo getSimpleFooter($currentPage, $entriesPerPage, $myPage, $myTable);
?>
</body>
</html>
Per richiedere il mio impaginatore, contattarmi via email, cliccando qui.