Io faccio cosi:

Codice 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 .= '
'
;
    } 
Lo puoi vedere in azione qui: www.modelliemodelle.it/iscritti.php

Praticamente ne mostro un tot prima ed un tot dopo lòa pagina attuale...