Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Paginacion en PHP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Paginacion en PHP

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..

paginacion-php.gif

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?


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

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.


Página generada el 26-05-2012 a las 06:03:23