apuntes:paginas_web
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
apuntes:paginas_web [2017/11/24 09:03] – [Paginación de resultados] Santiago Faci | apuntes:paginas_web [2019/02/13 17:19] (current) – [Proyectos de Ejemplo] Santiago Faci | ||
---|---|---|---|
Line 681: | Line 681: | ||
</ | </ | ||
==== Paginación de resultados ==== | ==== Paginación de resultados ==== | ||
+ | |||
+ | Cuando los resultados de una consulta generan una página demasiada extensa resulta bastante molesto por lo que se suele emplear la técnica de paginación para mostrar un número limitado de resultados por página incluso cuando hay muchos más. La solución pasa por generar una serie de enlaces a modo de páginas que permitan al usuario navegar entre los resultados de una manera más cómoda. También es posible incluso mostrar al usuario la posibilidad de ver todos los resultados en una sola página si él lo prefiere. En ocasiones esas páginas podrán ser solamente botones que permitan avanzar a la pagina anterior o a la página posterior y en otras ocasiones nos pueden mostrar un listado completo de todas las páginas (o no si éste es a su vez demasiado extenso) para que a su vez podamos avanzar más rápidamente saltándonos páginas intermedias. Esta es la solución que mostraremos aqui pero hay que tener en cuenta que no es la única como ya he comentado. | ||
+ | |||
+ | Lo primero que haremos será definir una constante que almacene el número de resultados que se mostrarán por página. Hay que tener en cuenta que este valor puede tener un valor por defecto pero también podemos dejar que sea el usuario quien lo escoja. | ||
<code php> | <code php> | ||
Line 688: | Line 692: | ||
. . . | . . . | ||
</ | </ | ||
+ | |||
+ | Y ahora, a la hora de mostrar los resultados, hay que añadir el código necesario tanto para el cálculo del total de páginas necesarias para mostrar los resultados, como para mostrar sólamente los resultados que procedan. Además, habrá que dejar unos enlaces (o botones según se prefiera) que permitan al usuario navegar por las // | ||
<code php> | <code php> | ||
+ | <?php | ||
+ | // Esta variable indica que página hay que cargar | ||
if (isset($_REQUEST[" | if (isset($_REQUEST[" | ||
$pagina = $_REQUEST[" | $pagina = $_REQUEST[" | ||
else | else | ||
- | $pagina = 1; | + | $pagina = 0; |
. . . | . . . | ||
. . . | . . . | ||
+ | // Primero calculamos cuántos resultados hay | ||
$sql = " | $sql = " | ||
. . . | . . . | ||
$total_articulos = . . . | $total_articulos = . . . | ||
+ | // Calcula el número de páginas que hacen falta | ||
$total_paginas = $total_articulos / TAMANO_PAGINA; | $total_paginas = $total_articulos / TAMANO_PAGINA; | ||
. . . | . . . | ||
- | $sql = " | + | // Se traen sólo aquellas filas que se van a mostrar (según la página) |
+ | $sql = " | ||
+ | | ||
. . . | . . . | ||
- | // Preparar | + | // Prepara |
- | for ($i = 0; $i < $total_paginas; | + | for ($i = 0; $i <= $total_paginas; |
?> | ?> | ||
- | <a href="? | + | <a href="? |
<?php | <?php | ||
} | } | ||
Line 1581: | Line 1593: | ||
* Búsqueda de entradas | * Búsqueda de entradas | ||
{{ blog.png? | {{ blog.png? | ||
- | * 2. Realiza un sitio web para la gestión de un albúm de fotos siguiendo la plantilla [[https:// | + | * 2. Realiza un sitio web para la gestión de un albúm de fotos siguiendo la plantilla [[https:// |
* Recuerda [[https:// | * Recuerda [[https:// | ||
{{ album.png? | {{ album.png? | ||
Line 1595: | Line 1607: | ||
===== Proyectos de Ejemplo ===== | ===== Proyectos de Ejemplo ===== | ||
- | En el repositorio de Bitbucket | + | En el repositorio de Github |
- | + | ||
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ===== Prácticas ===== | + | |
---- | ---- | ||
- | (c) 2017 Santiago Faci | + | (c) 2018-2019 |
apuntes/paginas_web.txt · Last modified: 2019/02/13 17:19 by Santiago Faci