Mirate este ejemplo!!
    
Código PHP:
Ver original- <? 
-   
- // Registros a mostrar en cada página 
- $regVistos = 10; 
-   
- // Consulta que devuelve todos los registros 
-   
- // Se cuentan los registros devueltos por la consulta SQL $lista0 
-   
- // Páginas que van a aparecer, redondeando los decimales siempre hacia arriba 
- $pagTotal = ceil($totalSql/$regVistos); 
-   
- // Se definen la página actual (desde el parámetro 'pag' de la URL) y las páginas anterior y siguiente 
- if (!isset($_GET['pag'])) {$pagActual=1;} else {$pagActual=$_GET['pag'];} 
- $pagAnterior = $pagActual-1; 
- $pagSiguiente = $pagActual+1; 
-   
- // Consulta SQL con la que se sacará el listado de registros 
- $lista1 = mysql_query(" SELECT * FROM registros ORDER BY campo DESC LIMIT ".(($pagActual-1)*$regVistos).",".$regVistos.""); 
- // Bucle para generar el listado de registros 
-  // Aquí irá el código PHP que escriba los registros 
- } 
-   
- // Se inicia el listado de páginas 
- echo '<ul>'; 
-   
- // Si la página actual no es la primera, se muestra el enlace a la página anterior 
- if ($pagAnterior>0) {echo '<li class="anterior"><a href="lista.php?pag='.$pagAnterior.'"><span class="oculto">Página </span>Anterior</a></li>';} 
-   
- // Se saca el listado de páginas mediante un bucle 
- $pgIntervalo = 3; // Páginas que aparecen antes y después de la actual 
- $pgMaximo = ($pgIntervalo*2)+1; // Máximo de páginas en el listado 
- $pg=$pagActual-$pgIntervalo;$i=0; 
- while ($i<$pgMaximo) { 
-  if ($pg==$pagActual) {$strong=array('<strong>','</strong>');} else {$strong=array('','');} 
-  if ($pg>0 and $pg<=$pagTotal) { 
-   echo '<li>'.$strong[0].'<a href="lista.php?p='.$_GET['p'].'&pag='.$pg.'"><span class="oculto">Página </span>'.$pg.'</a>'.$strong[1].'</li>'; 
-   $i++; 
-  } 
-  if ($pg>$pagTotal) {$i=$pgMaximo;} // Si la página que se va a mostrar se pasa de la cantidad de páginas definidas en $pagTotal se para la generación de elementos de lista 
-  $pg++; 
- } 
-   
- // Si la página actual no es la última, se muestra el enlace a la página siguiente 
- if ($pagSiguiente<=$pagTotal) {echo '<li class="siguiente"><a href="lista.php?p='.$_GET['p'].'&pag='.$pagSiguiente.'"><span class="oculto">Página </span>Siguiente</a></li>';} 
-   
- // Se finaliza el listado de páginas 
- echo '</ul>'; 
- ?>