Codice PHP:
// quanti records per pagina?
$pageSize = 10;
// query per contare quanti record ci sono nel db
$queryTot = "SELECT COUNT(*) FROM $tabella";
// esegue la query per il conteggio ..
$ris_totale = mysql_query($queryTot) or die($errorString);
$arr_totale = mysql_fetch_row($ris_totale);
// qui ho il totale dei record nell'elemento 0 dell array
$totale = $arr_totale[0];
// qui ho la pagina corrente
$pagina = ($_GET["pag"] != "") ? (int)$_GET["pag"] : 1;
// da che record iniziare a prendere i valori
$begin = ($pagina-1) * $pageSize;
// quante pagine?
$countPages = ceil($totale / $pageSize);
// query per prelevare i valori dal record iniziale della pagina fino al max da visualizzare..
$query="SELECT * FROM tabella ORDER BY id DESC LIMIT $begin, $pageSize";
// eseguo la query
$result = mysql_query ($query);
// carica in row il contenuto del record corrente ogni volta.. e quando non ci sono più records restituisce FALSE!
while($row = mysql_fetch_array($result)){
//STAMPA IL CONTENUTO usando $row
// Liberazione delle risorse..
mysql_free_result($result);
/* Se il numero totale dei record è maggiore dei record stampati in una pagina e il numero
delle pagine è maggiore della pagina corrente allora metto un link sotto a quello che c'è prima..
quindi sotto ai records che ha stampato in quella pagina.. */
if ($totale > $pageSize && $countPages > $pagina) {
echo "[url='?pag=" . ($pagina+1) . "']Pagina successiva -->[/url]";
}
// Se ci fossero pagine precedenti, vado indietro
if ($pagina > 1) {
echo "
[url='?pag=" . ($pagina-1) . "']<--- Pagina precedente[/url]";
}
// Non ci sono pagine
if($totale == 0){
print("<P class='nota'> Non ci sono $tabella nel database</P>");
}else{
// stampa il numero delle pagine
print("<P class='nota'>Ci sono $totale $tabella nel database.</P>");
}
echo "<DIV class=\"back\">[url='index.php']Torna indietro[/url]</DIV>";