> Manuales > Taller de PHP

Sistema de paginación PHP 5, por el cual mostramos un listado con los resultados obtenidos en una consulta SQL.

En el artículo de hoy vamos a ver una clase PHP 5 que nos muestra una consulta SQL paginada mediante botones o enlaces.

Para este artículo tenemos que tener claro como funciona SQL, y por ello recomiendo leer nuestro Tutorial sobre SQL.

Ahora que tenemos la base para entender dicha clase, podemos pasar a ver como podemos utilizarla en nuestra web.

Lo primero que tenemos que hacer es descargar la clase de la web de PHP Classes.

Una vez que lo tenemos descargado tenemos que situarlo en nuestro servidor. Podemos colocarlo en la raíz de nuestra web para que sea mas cómoda su utilización.

Además, tenemos que descargarnos también la hoja de estilos que utiliza la clase, aunque en un futuro se podría editar para acoplarla a nuestra web.

Una vez que tenemos todo listo podemos empezar a construir nuestro código de ejemplo:

<?php

require_once('CompletePagination.class.php');
$ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Simple Pagination Example</title>
<link rel="stylesheet" type="text/css" href="completepagination.css" />
</head>
<body>
<div align="center">
<!-- Ejemplo de paginacion con extras-->
<?php echo $pagination_html; ?>

<table border="1" cellpadding="2" cellspacing="2">
<thead>
<tr>
<th>Resultados</th>
</tr>
</thead>
<tbody>
<?php
while($record = mysql_fetch_array($result)){
?>
<tr>
<td><?php echo $record['datos'];?></td>

</tr>
<?php } ?>
</tbody>
</table>

<!-- Ejemplo sin extras-->
<?php echo $pagination_html2;?>
</div>
</body>
</html>
row_per_page = 20;
$pagination = new CompletePagination($row_per_page);

$link = mysql_connect('', '', '');
mysql_selectdb('');



$query_count ="sentencia sql "
$result_count = mysql_query($query_count);
$record_count = mysql_fetch_array($result_count);
$total_rec = $record_count['tot_rec'];

En estas primeras líneas de código tan sólo hemos creado la sentencia SQL para sacar el numero de resultados a mostrar y hemos incluido la clase CompletePagination.class.php

A continuación, vamos a ir creando variables para nuestra paginación:

$pagination->total_rows = $total_rec;

//Ejemplo de paginación con extras
$pagination->show_dropdown = true;
$pagination->show_total_records = true;
$pagination->show_page_no = true;
$pagination->show_ellipsis = 20;
$pagination_html = $pagination->showCompletePagination();


//Ejemplo de paginacion sin extras
$pagination->show_ellipsis = 10;
$pagination->show_dropdown = false;
$pagination->show_total_records = false;
$pagination->show_page_no = false;
$pagination_html2 = $pagination->showCompletePagination();


//Comun a ambos ejemplos
$query = "SELECT Country, CountryAbbrev, CurrencyAbbr FROM countries ".$where." LIMIT ".$pagination->getLimit() . ", " . $row_per_page;
$result = mysql_query($query);
?>

Además de crear variables como son el número de resultados a mostrar por página, si mostramos el total de resultados o no, etc., hemos ejecutado la consulta y la hemos almacenado para posteriormente mostrarla en nuestra web.

Ahora ya sólo nos queda ver el código HTML donde se van a mostrar los resultados.

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Simple Pagination Example</title>
<link rel="stylesheet" type="text/css" href="completepagination.css" />
</head>
<body>
<div align="center">
<!-- Ejemplo de paginacion con extras-->
<?php echo $pagination_html; ?>

<table border="1" cellpadding="2" cellspacing="2">
<thead>
<tr>
<th>Resultados</th>
</tr>
</thead>
<tbody>
<?php
while($record = mysql_fetch_array($result)){
?>
<tr>
<td><?php echo $record['datos'];?></td>

</tr>
<?php } ?>
</tbody>
</table>

<!-- Ejemplo sin extras-->
<?php echo $pagination_html2;?>
</div>
</body>
</html>

Si os fijáis tenemos dos variables una llamada $pagination_html y otra llamada $pagination_html2. La primera nos muestra una paginación mas completa con información sobre el total de resultados, la posibilidad de ir directamente a una página mediante un campo select, etc., mientras que la segunda sólo muestra la paginación sin datos extras.

Como veis, están los dos tipos de paginación en el mismo ejemplo, pero se pueden diferenciar sin problemas.

Sara Alvarez

Equipo DesarrolloWeb.com

Manual