Paginación parecido a Google
¿Como? Código PHP:
<?
// Datos de conexión a la base
$base="nombredelabase";
$con=mysql_connect(servidor,usuario,password);
mysql_select_db($base,$con);
if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=10; // cantidad de resultados por página
$inicial = $pg * $cantidad;
$pegar = "SELECT * FROM tabla ORDER BY titulo LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());
$contar = "SELECT * FROM tabla ORDER BY titulo";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
// Imprimiendo los resultados
while($array = mysql_fetch_array($cad)) {
echo $array['titulo']."<br>";
}
// Cerramos la conexión a la base
$con=mysql_close($con);
// Creando los enlaces de paginación
echo "<p>";
if ($pg <> 0)
{
$url = $pg - 1;
echo "<a href='paginar.php?pg=".$url."'>« Anterior</a> ";
}
else {
echo " ";
}
for ($i = 0; $i<($pages + 1); $i++) {
if ($i == $pg) {
echo "<font face=Arial size=2 color=ff0000><b> $i </b></font>";
}
else {
echo "<a href='paginar.php?pg=".$i."'>".$i."</a> ";
}
}
if ($pg < $pages) {
$url = $pg + 1;
echo "<a href='paginar.php?pg=".$url."'>Siguiente »</a>";
}
else {
echo " ";
}
echo "</p>";
?>
supongamos que el resultado de esa paginación mostrando 50 registros por pagina nos de un total de 12 paginas para paginar... ahora bien...
según el script que expuse arriba, lo paginaria de la siguiente manera.. :
<< anterior 0 1 2 3 4 5 6 7 8 9 10 11 12 siguiente >>
Mi pregunta es la siguiente :
Supongamos que queremos pasar ese script a este tipo de formato en su paginación
<< anterior 1 2 3 4 5 siguiente >> (solo muestra 5 paginas comenzando desde "1" y no desde 0)
si le damos click por decir a la pagina 4 entonces que nos quede algo asi
<< anterior 4 5 6 7 8 siguiente >> osea aqui el paginador mostró el print o echo desde la pagina manteniendo su orden para mostrar de 5 paginas.
Saludos.-