Este artículo explica uno de los métodos mas fáciles y eficientes para páginar resultados en PHP.
Como primer tenemos nuestra base de datos, en nuestro caso la nombramos "noticias" y le añadimos una tabla llamada "artículos" con la siguiente estructura...
CREATE TABLE `artículos` (
`id` INT NOT NULL AUTO_INCREMENT ,
`titulo` VARCHAR( 255 ) NOT NULL ,
`descripcion` TEXT NOT NULL ,
`contenido` TEXT NOT NULL ,
`fecha` DATE NOT NULL ,
`visible` TINYINT( 1 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
Nosotros hemos cargado la tabla con los titulares de un diario, la páginación final tiene este aspecto..

Pasemos a explicar el código, primero hemos creado la función de conexión a la base de datos...
function conectar()
{
$base_de_datos = "noticias";
$db_usuario = "root";
$db_password = "";
if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
No olviden modificar las variables $base_de_datos, $db_usuario y $db_password con sus correspondientes valores, esa función puede ir en un include (seria lo mas recomendado), luego llamamos a la funcion...
$db = conectar();
Ya tenemos la variable $db apuntada a nuestra base de datos el siguiente paso es definir los valores por defecto, como por ejemplo cada cuantos artículos páginar...
$registros = 3;
Y detectar si la variable $página (indica el número de página actual) esta definida, si no es así le damos el valor 1 ósea que si no se paso por la url la variable $página (por ejemplo: "páginacion.php?página=2") entramos a la página 1 directamente...
if (!$página) {
$inicio = 0;
$página = 1;
}
else {
$inicio = ($página - 1) * $registros;
}
Como dato adicional la variable $inicio indica desde que registro empezar a mostrar los resultados. Pasemos al corazón de la páginación, miremos primero el código...
$resultados = mysql_query("SELECT id FROM artículos WHERE visible = 1");
$total_registros = mysql_num_rows($resultados);
$resultados = mysql_query("SELECT * FROM artículos WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio, $registros");
$total_páginas = ceil($total_registros / $registros);
Usuarios que han visto este tema también han visto...
- Crear una lista de carpetas con PHP
- Saber si una tabla de una BD existe
- Marcas de agua automáticas con PHP y GD
- Colorear tablas de datos en PHP
- El Bucle FOR en PHP. ¿Cómo funciona?
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.