Yo también me quebré un poco la cabeza con esto, traté de hacer un sistema de navegación como el de
menéame y creo que quedó bien. Lo puedes ver con CSS en
http://www.viajesbarretos.com/index.php?seccion=galeria
Te paso el código:
Código PHP:
<?php
$pagina = $_GET['pagina'];
$paginas = 30;
if(!$pagina)
$pagina = 1;
//Empieza paginacion
$paginacion = '';
if($pagina == 1)//anterior cuando esta en la pagina 1
$paginacion .= '<span>«</span> ';
else if($pagina > 1)//anterior cuando esta en una pagina mayor
$paginacion .= '<a href="?pagina='.($pagina-1).'">«</a> ';
if($pagina > 3)
$paginacion .= '<a href="?pagina=1">1</a><span>…</span> ';
if($pagina <= 3)
$p_inicio = 1;
else
$p_inicio = $pagina - 2;
$p_fin = $p_inicio + 4;
for($i=$p_inicio;$i<=$p_fin;$i++){
if($i <= $paginas){
if($pagina == $i)
$paginacion .= "<span>$i</span> ";
else
$paginacion .= '<a href="?pagina='.$i.'">'.$i.'</a> ';
}
}
if($paginas > 5)
if($pagina <= $paginas - 3)
$paginacion .= '<span>…</span><a href="?pagina='.$paginas.'">'.$paginas.'</a> ';
if($pagina == $paginas)//siguiente cuando esta en la ultima pagina
$paginacion .= '<span>»</span> ';
else if($pagina < $paginas)//siguiente cuando esta en una pagina menor a la ultima
$paginacion .= '<a href="?pagina='.($pagina+1).'">»</a> ';
echo $paginacion;
//termina paginacion
?>