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>';
?>