te pego un código que hice, es algo tosco, quizás te sirva como base.
Código PHP:
<?php
# algunas variables generales
$servidor = "";
$usuario = "";
$contrasenia = "";
$base = "";
$mostrar = 10; # cantidad de registros a mostrar.
$consulta = "";
# si no tengo variable "ini", mostrar desde el primero
if ( isset($_GET["pag"]) ) {
$ini = $_GET["ini"];
}
else {
$ini = 0;
}
# conexion
$conexion = mysql_connect($servidor, $usuario, $contrasenia);
$seleccionabase = mysql_select_db($base, $conexion);
$sentencia = mysql_query($consulta, $conexion);
$total = mysql_num_rows($sentencia);
# antes de empezar, comprobaciones de seguridad...
if ( ( ($ini != 0) AND (fmod($ini, $mostrar) != 0) ) OR ( $ini >= $total ) ) {
die("Valor de \$ini incorrecto");
}
# cantidad de resultados a mostrar (por ejemplo, si $ini == 10 y $total == 12, muestro 2 resultados
# en vez del valor de $mostrar.
$resultados = $total - $ini;
if ( $resultados >= $mostrar ) {
$resultados = $mostrar;
}
# obtengo cada registro y escribo lo necesario con cada uno.
for ($i = $ini; $i <= $resultados; $i++) {
$muevopuntero = mysql_data_seek($sentencia, $i);
$resultado = mysql_fetch_row($sentencia);
# ACA VA EL CÓDIGO HTML. DE CADA REGISTRO.
}
# barra de navegación
# primero, obtengo las páginas (sumo una si queda incompleta)
$paginas = $total / $mostrar;
if ( $paginas != floor($paginas) ) {
$paginas++;
}
$pag_actual = ($ini / $mostrar) + 1;
# indicador de página
echo "Página ".$pag_actual." de ".$paginas;
# enlaces "Anterior" y "Primera"
if ( $ini != 0 ) {
$ini_anterior = $ini - $mostrar;
echo "<a href=\"index.php\">Primera</a>";
echo "<a href=\"index.php?ini=".$ini_anterior."\">< Anterior</a>";
}
else {
echo "Primera";
echo "< Anterior";
}
# enlaces "siguiente" y "última"
if ( $pag_actual != $paginas ) {
$ini_siguiente = $ini + $mostrar;
$ini_ultima = floor ($total, $mostrar);
echo "<a href=\"index.php?ini=".$ini_siguiente."\">Siguiente ></a>";
echo "<a href=\"index.php?ini=".$ini_ultima."\">Última</a>";
}
else {
echo "Siguiente >";
echo "Última";
}
?>
Saludos.
PD: si alguien quiere armar un FAQ con este código, me sentiría orgulloso.