Código fuente Ya.

Puede ejecutar la o las páginas para probar el concepto inmediatamente.

 

Concepto:Listado de registros con paginación en PHP

El concepto trata sobre:php,mysql
Autor:

Retornar

Nombre del archivo:menu.html

Comentarios
El objetivo es mostrar una cantidad de registros limitada. Luego disponiendo de hipervínculos para
poder retroceder o avanzar.
Se crea una tabla llamada usuarios y se carga en forma automática 15 registros.
Nombre del archivo:creartabla.php

Comentarios
Nos conectamos al gestor de base de datos MySql y seleccionamos la base de datos codigofuenteya:
$conexion=mysql_connect("localhost","pepe","123456") or
  die("Problemas en la conexion");
mysql_select_db("codigofuenteya",$conexion) or
  die("Problemas en la selección de la base de datos");

Luego insertamos 15 registros en la tabla usuarios:
mysql_query("insert into usuarios(nombre,clave,edad) values ('juan','123',14)",$conexion) or
  die("Problema:".mysql_error());
mysql_query("insert into usuarios(nombre,clave,edad) values ('ana','123',17)",$conexion) or
  die("Problema:".mysql_error());
...
...
Nombre del archivo:listadopaginacion.php

Comentarios
La variable $inicio indica a partir de que registro vamos a extraer de la tabla, inicialmente cuando llamamos
a esta página no llega el parámetro 'pos' por lo que $inicio se carga con el valor 0:
if (isset($_REQUEST['pos']))
  $inicio=$_REQUEST['pos'];
else
  $inicio=0;

Nos conectamos con la base de datos:
$conexion=mysql_connect("localhost","pepe","123456") or
  die("Problemas en la conexion");
mysql_select_db("codigofuenteya",$conexion) or
  die("Problemas en la selección de la base de datos");

Vamos a implementar páginas que muestren 5 registros, por lo que nuestro select queda implementado:
$registros=mysql_query("select nombre,clave,edad from usuarios limit $inicio,6",$conexion) or
  die("Problemas en el select:".mysql_error());
Lo más importante que hay que notar es que en el comando limit indicamos rescatar 6 registros y no 5.
Esto lo hacemos para saber si hay más de 5 registros a mostrar, es decir si se rescatan 6 significa
que tenemos que disponer el hipervínculo 'siguientes' en nuestra página.

Dentro del while imprimimos cada registro de la tabla usuarios, el if dentro del while nos sirve para
no imprimir el sexto registro rescatado:
$impresos=0;
while ($reg=mysql_fetch_array($registros))
{
  $impresos++;
  if ($impresos==6)
    break;
  echo '<tr>';	
  echo '<td>'.$reg['nombre'].'</td>';
  echo '<td>'.$reg['clave'].'</td>';
  echo '<td>'.$reg['edad'].'</td>';
  echo '</tr>';
}

Para saber si debemos disponer el hipervínculo 'anteriores' debemos preguntar por el contenido de la
variable $inicio, si vale cero significa que estamos mostrando la primer página, en caso contrario
disponemos el hipervínculo pasando el parámetro 'pos' con el valor de la variable $incio menos 5:
if ($inicio==0)
  echo "anteriores ";
else
{
  $anterior=$inicio-5;
  echo "<a href=\"listadopaginacion.php?pos=$anterior\">Anteriores </a>";
}

Si el contador $impresos tiene almacenado el valor 6 significa que hay otra página más adelante a la
actual, por lo que disponemos un hipervínculo con el parámetro pos con el valor de la variable $inicio
más 5:
if ($impresos==6)
{
  $proximo=$inicio+5;
  echo "<a href=\"listadopaginacion.php?pos=$proximo\">Siguientes</a>";
}
else
  echo "siguientes";

Retornar



Código Fuente Ya - 2015