Hola alamarcheta,
yo tengo una funcion de paginado que es la siguiente, espero q te sirva:
Código PHP:
<?php
//conexion con mysql
$dp_di = "localhost";
$db_usuario = "root";
$db_clave = "";
$conectar = mysql_connect ($dp_di,$db_usuario,$db_clave);
if ($conectar == NULL)
{
printf ("Error");
}
//conectamos con la base de datos x
$db = 'x';
mysql_select_db($db, $conectar);
$i = 0;
$numero_resultados = 10; //nº de resultados a mostrar por pagina
//condiciones de paginacion
$pagina = $_GET["pagina"]; //recoge el valor de la palabra "pagina" que se le pasa en la url
if (!$pagina)
{
$pagina = 1; //indica que esta en la pagina 1
$inicio = 0; //indica desde que registro empieza a mostrar resultados
}
else
{
$inicio = ($pagina-1)*$numero_resultados;
}
//1ª consulta ---> obtenemos el nº total de usuarios registrados
$consulta = mysql_query("SELECT id FROM control_usuarios",$conectar);
$total_registros = mysql_num_rows($consulta);
//consulta del nombre de usuario, limitando ya la paginacion
//2ª consulta ---> obtenemos el nº de paginas q va a haber, y limitamos ya los registros a mostrar con LIMIT
$consulta = mysql_query("SELECT nombre_usuario FROM control_usuarios ORDER BY id LIMIT $inicio, $numero_resultados",$conectar);
$total_paginas = ceil($total_registros/$numero_resultados);
//bucle que devuelve los resultados (nombre de los usuarios)
while ($fila = mysql_fetch_array($consulta))
{
$nombre[$i] = $fila['nombre_usuario'];
echo $nombre[$i]."<br>";
$i++;
}
//link a paginas anteriores
if(($pagina - 1) > 0)
{
echo "<a href='paginado.php?pagina=".($pagina-1)."'>< Anteior </a>";
}
//bucle que muestra el nº de las paginas que hay con el link hacia ellas
for($y = 1; $y <= $total_paginas; $y++)
{
if($pagina == $y)
{
echo "<b>[".$pagina."]</b>";
}
else
{
echo "<a href='paginado.php?pagina=".$y."'>$y</a>";
}
}
//link a paginas siguientes
if(($pagina + 1) <= $total_paginas)
{
echo "<a href='paginado.php?pagina=".($pagina+1)."'> Siguiente ></a>";
}
?>
Saludos