Te dejo uno que yo uso en ocasiones la idea original la tome hace un tiempo de la web pero la modifique para que se parezca a la paginacion de google. es simple pero efectivo y modificable ;)
Código PHP:
Ver original<?php
$pg =$_GET['pg'];
$base="db";
if (!isset($pg)) {$pg = 0; }// $pg es la pagina actual $cantidad=10; // cantidad de resultados por página
$inicial = $pg * $cantidad;
$pegar = "SELECT * FROM Articulos ORDER BY precio LIMIT $inicial,$cantidad";
$contar = "SELECT * FROM Articulos ORDER BY precio";
$pages = intval($total_records / $cantidad); if (($total_records / $cantidad)> intval($total_records / $cantidad)) {$pages = intval($total_records / $cantidad)+1;} else {$pages = intval($total_records / $cantidad)+1;}
// Imprimiendo los resultados
echo "<table width='100%'>";
if ($colorfila==0){
$color= "#DEDEBE";
$colorfila=1;
}else{
$color="#F0F0F0";
$colorfila=0;
}
echo "<tr><td bgcolor='".$color."'><font face='Arial' size='2'>".$array['precio']."</font></td></tr>";
}
echo "</table>";
// Cerramos la conexión a la base
// Creando los enlaces de paginación
echo "<p>";
if ($pg <> 0)
{
$url = $pg - 1;
echo "<a href='paginacion.php?pg=".$url."'> Anterior</a> ";
}
else { echo "Inicio "; }
if (10 < $pages ){
for ($i = 0; $i<($pages + 1); $i++) {
if ($i == $pg and $pg <= ($pages - 2)) {
// este if esta pronto !! no tocar
if($pg <= ($pages -2) && $pg >= 8){
$p=$pg - 3;
echo "<a href='paginacion.php?pg=".$p."'>".$p.".....</a> ";
}
if($pg <= ($pages -4) ){
$p=$pg - 3;
$i + 1;
$m1=$i + 1;
$m2=$m1 + 1;
$m3=$m2 +1;
echo "<a href='paginacion.php?pg=".$m1."'>".$m1."</a> ";
echo "<a href='paginacion.php?pg=".$m2."'>".$m2."</a> ";
echo "<a href='paginacion.php?pg=".$m3."'>".$m3."</a> ";
}
echo $pg;
$w = $pg +1;
echo $pages;
$ww=$pages -3;
if($w < $pages && $w > $ww){
echo "\t <a href='paginacion.php?pg=".$w."'>es".$w."</a> ";
}
} // end else
}// end for
}// end if
if(10 > $pages) {
echo 'hay 10 paginas:' ;
}// end else
if ($pg < ($pages - 1)) {
$url = $pg + 1;
echo "\t <a href='paginacion.php?pg=".$url."'>Siguiente</a>";
}
else {
echo "Fin ";
}
echo "</p>";
?>