Hola! Te mando un pequeña pagina de una agenda de contactos que hice hace un par de semanas a ver si te puede ayudar un poco. Es muy simple pero la paginación funciona perfectamente. Espero que te sirva de ayuda. Ya me dirás algo.
Código PHP:
<?php
$host = "localhost";
$user = "root";
$password = "";
$database = "empresa";
//Este include solo és una función que no tiene nada que ver con la paginación
include ("functions.inc");
$link = conectar($host, $user, $password, $database);
//numero de elementos por pagina
$elements_pag = "3";
if ($_GET['num'] > 0)
{
$n = $_GET['num'];
}
else
{
$n = 0;
}
$select = "select * from clients limit " . $n . ", " . $elements_pag;
$resultat = mysql_query($select, $link);
$select_totals = "select * from clients"; //consulta tots registres de la taula clients
$reg_totals = mysql_query($select_totals, $link); //torna el resultat de la consulta
$n_registres = mysql_num_rows($reg_totals); //conta el número de resultats
//taula de resultats de la consulta
echo '<table border="1">';
echo "<tr>";
echo "<td>Nombre:</td>";
echo "</tr>";
while (($fila = mysql_fetch_array($resultat)) != false)
{
echo "<tr>";
$id = $fila['id'];
echo "<td>" . $fila['nombre'] . "</td>";
echo "</tr>";
}
echo "</table>";
//taula de paginació
echo "<br>";
echo "<table border = '1'>";
echo "<tr>";
echo "<td> Trobats " . $n_registres . " articles. </td>";
echo "<td>";
echo "Pagines: ";
$n_pag = '0';
for ($i = 0 ; $i < $n_registres ; $i = $i + $elements_pag)
{
$n_pag = $n_pag + 1;
if($n == $i)
{
echo '<a href = "veure.php?num=' . $i . '"> <b>' . $n_pag . ' </b></a>';
}
else
{
echo '<a href = "veure.php?num=' . $i . '"> ' . $n_pag . ' </a>';
}
}
echo "</td>";
echo "</tr>";
echo "</table>";
mysql_close ($link);
mysql_free_result ($resultat);
?>