Está en la página 1de 4

Desarrollo Plataforma Web/Programacion Web 1 Paginación con PHP y MYSQL Ing.

Tomás Urbina

Paginación en PHP
Ejercicio Práctico de Paginación Utilizando la maquina virtual (cualquiera que tenga la plataforma adecuada) que estén utilizando comiencen con el primer paso crear nuestra base de datos, en este ejemplo la nombramos "bancos" y le añadimos una tabla llamada "articulos" con la siguiente estructura...
CREATE TABLE `articulos` ( `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` ) );

Como ejemplo podemos cargar la tabla con los titulares de un diario, la paginación final tiene este aspecto… (Agreguen al menos unos 9 titulares)

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 = "bancos"; $db_usuario = "root"; $db_password = "mitologia"; if (!($link = mysql_connect("localhost", $db_usuario, $db_password))) {

.php?pagina=2") entramos a la pagina 1 directamente. } // de una vez escogemos la base de datos y establecemos la conexion if (!mysql_select_db($base_de_datos.. exit(). $db = conectar(). esa función puede ir en un include (seria lo mas recomendado o pueden usar el archivo conexión.. $link)) { echo "Error seleccionando la base de datos. $pagina = 1.". .". Ya tenemos la variable $db apuntada a nuestra base de datos el siguiente paso es definir los valores por defecto. } Como dato adicional la variable $inicio indica desde que registro empezar a mostrar los resultados...php que ya se vio en clases pasadas). $resultados = mysql_query("SELECT * FROM articulos WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio. luego llamamos a la función. $registros = 3. miremos primero el código. $registros"). } No olviden modificar las variables $base_de_datos. exit(). Pasemos al corazón de la paginación. Tomás Urbina echo "Error conectando a la base de datos. si no es así le damos el valor 1 ósea que si no se paso por la url la variable $pagina (por ejemplo: "paginacion. $db_usuario y $db_password con sus correspondientes valores. como por ejemplo cada cuantos artículos paginar.Desarrollo Plataforma Web/Programacion Web 1 Paginación con PHP y MYSQL Ing. } else { $inicio = ($pagina . if (!$pagina) { $inicio = 0..1) * $registros. $pagina = $_GET["pagina"]. $resultados = mysql_query("SELECT id FROM articulos WHERE visible = 1"). $total_registros = mysql_num_rows($resultados). } return $link.. Y detectar si la variable $pagina (indica el numero de pagina actual) esta definida. $total_paginas = ceil($total_registros / $registros)..

Luego solo queda el bucle que devuelve los resultados. Ese dato de $total_registros nos sirve para poder determinar la cantidad de paginas. echo "<fontcolor='#666666'>". for ($i=1.php?pagina=$i'>$i</a> ".php?pagina=".$articulo["descripcion"]. } El link a la pagina anterior será visible siempre y cuando no estemos en la primer pagina ($pagina .$pagina. el primero es el ORDER BY que lo que hace es ordenar los resultados por fecha y de forma descendente ("DESC") en caso contrario usaríamos "ASC".."'>< Anterior</a> "."</b> ". El código del navegador de paginas se divide en tres partes.. while($articulo=mysql_fetch_array($resultados)) { echo "<b>".Desarrollo Plataforma Web/Programacion Web 1 Paginación con PHP y MYSQL Ing.1) > 0). $i++){ if ($pagina == $i) { echo "<b>". el primer valor pasado como parámetro indica desde que registro empezar a devolver los resultados y el segundo parámetro indica la cantidad de registros que debe devolver desde $inicio.. La segunda consulta tiene en el SQL dos elementos a analizar.. } } . Con la primer consulta obtenemos el numero de resultados totales.. El segundo elemento a ver es LIMIT $inicio. $total_registros = mysql_num_rows($resultados). $registros esa cláusula SQL cumple la función de limitar los resultados devueltos."</b><br>". "</font><br><br><br>".($pagina-1). $resultados = mysql_query("SELECT id FROM articulos WHERE visible = 1"). } Como parte final nos queda hacer el navegador de paginas (o paginación).. } else { echo "<a href='paginacion. primero la que muestra el link a la pagina anterior if(($pagina .1) > 0) { echo "<a href='paginacion. Tomás Urbina Como ven realizamos 2 consultas similares en cuanto a su criterio de selección ("WHERE visible = 1"). $i<=$total_paginas... La segunda parte del navegador de paginas seria la que muestra la cantidad de paginas.$articulo["titulo"].

Desarrollo Plataforma Web/Programacion Web 1 Paginación con PHP y MYSQL Ing."'>Siguiente ></a>". OK. eso es todo prueben el código y HAGANLO funcionar..php?pagina=".($pagina+1). Tomás Urbina Y la tercer parte es la que muestra el enlace a la pagina siguiente. } En este caso muestra el enlace siempre y cuando no estemos en la ultima pagina (($pagina + 1)<=$total_paginas).. if(($pagina + 1)<=$total_paginas) { echo " <a href='paginacion. saquen todas sus inquietudes… .