Esto puede servirte de base...
Código PHP:
/******************************************************/
/* Funcion paginar
* actual: Pagina actual
* total: Total de registros
* por_pagina: Registros por pagina
* enlace: Texto del enlace
* maxpags: El máximo de páginas a presentar simultáneamente (opcional)
* Devuelve un texto que representa la paginacion
*/
function paginar($actual, $total, $por_pagina, $enlace, $maxpags=0) {
$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
$minimo = $maxpags ? max(1, $actual-ceil($maxpags/2)): 1;
$maximo = $maxpags ? min($total_paginas, $actual+floor($maxpags/2)): $total_paginas;
if ($actual>1)
$texto = "<a href=\"".$enlace."&pagina=$anterior\" class=\"enlaces\">« Anterior</a> ";
else
$texto = "<b>« Anterior</b> ";
if ($minimo!=1) $texto.= "... ";
for ($i=$minimo; $i<$actual; $i++)
$texto .= "<a href=\"".$enlace."&pagina=$i\" class=\"enlaces\">$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$maximo; $i++)
$texto .= "<a href=\"".$enlace."&pagina=$i\" class=\"enlaces\">$i</a> ";
if ($maximo!=$total_paginas) $texto.= "... ";
if ($actual<$total_paginas)
$texto .= "<a href=\"".$enlace."&pagina=$posterior\" class=\"enlaces\">Siguiente »</a>";
else
$texto .= "<b>Siguiente »</b>";
return $texto;
}
?>
En tu html puedes poner:
Código HTML:
Ver original<div align="center"><small>Pagina
</small><? echo "$pagina";?> <small> <? echo paginar($pagina, $total_registros, $registros, $enlace."c=$c&o=$o", $maxpags=20); ?></small></div>