Io faccio cosi:
Lo puoi vedere in azione qui: www.modelliemodelle.it/iscritti.phpCodice PHP:
# indico quante pagine visualizzo nella paginazione prima e dopo la pagina attuale
$numPag = 5;
if($totRecord == 0) {
$paginazione = '';
} else {
$paginazione = '[b] Pagine totali: '.$totPage.'[/b] - ';
if ($currentPage > ($numPag+2)) {
$paginazione .= "<a class=\"blink\" href=\"?" . $querystring . "page=1\" title=\"Vai alla pagina 1\">1</a> ... ";
} elseif ($currentPage == $numPag+2) {
$paginazione .= "<a class=\"blink\" href=\"?" . $querystring . "page=1\" title=\"Vai alla pagina 1\">1</a> ";
}
for($n = 1; $n <= $totPage; $n++) {
# caso in cui sono nella pagina corrente
if ($n == $currentPage) {
$paginazione .= '[b]'.$n.'[/b] ';
# visualizzo le $numPag pagine precendeti e successive
} elseif ($currentPage - $n <= $numPag && $n - $currentPage <= $numPag) {
$paginazione .= "<a class=\"blink\" href=\"?" . $querystring . "page=$n\" title=\"Vai alla pagina $n\">$n</a> ";
} // end if
} // end for
if ($currentPage < $totPage-($numPag+1)) {
$paginazione .= " ... <a class=\"blink\" href=\"?" . $querystring . "page=$totPage\" title=\"Vai alla pagina $totPage\">$totPage</a> ";
} elseif ($currentPage == $totPage-($numPag+1)) {
$paginazione .= " <a class=\"blink\" href=\"?" . $querystring . "page=$totPage\" title=\"Vai alla pagina $totPage\">$totPage</a> ";
}
$paginazione .= '
';
}
Praticamente ne mostro un tot prima ed un tot dopo lòa pagina attuale...