Mostrar Resultados Horizontalmente y Paginados con PHP y MySQL
1Explicar desde el principio este script resultaría redundante, pues ya hemos tratado parte de este tema, para ello los remito a:
- Mostrar Resultados de una Consulta a la Base de Datos en Dos columnas
- Paginar Resultados con PHP y MySQL
Sin embargo, ahora nuestro objetivo es algo distinto, vamos a mostrar los resultados horizontalmente, para esto seguiremos los siguientes pasos:
En primer lugar, descárgate el código de la sección descargas.
Con tu código a la vista, procedemos a explicarlo:
La Consulta a la BD
Ya mencionábamos la importancia de la función sprintf pues nos permite hacer límites a nuestra consulta a la BD MySQL. De esta manera la consulta nos muestra todos los resultados, y con sprintf vamos limitando de que número de filaBD y cuantas filasBD vamos a mostrar, almacenando esa información en variables. Veamos este bloque de código:
$maximo_consulta = 3;
$iniciar_consulta = 0;
if (isset($_GET['iniciar_consulta'])) {
$iniciar_consulta = $_GET['iniciar_consulta'];
}
$empezar_fila = $iniciar_consulta * $maximo_consulta;
mysql_select_db($database, $connBD);
$consulta1 = "SELECT id_img FROM tabla ORDER BY id_art ASC";
$limite_fila1 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila, $maximo_consulta);
$resultado1 = mysql_query($limite_fila1, $connBD) or die(mysql_error());
$fila1 = mysql_fetch_assoc($resultado1);
$limite_fila2 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+3, $maximo_consulta);
$resultado2 = mysql_query($limite_fila2, $connBD) or die(mysql_error());
$fila2 = mysql_fetch_assoc($resultado2);
$limite_fila3 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+6, $maximo_consulta);
$resultado3 = mysql_query($limite_fila3, $connBD) or die(mysql_error());
$fila3 = mysql_fetch_assoc($resultado3);
Como puedes darte cuenta con sprintf vamos limitando el inicio de cada resultado, pero a todos le asignamos un número máximo de filasBD a mostrar. Basta con modificar la variable $maximo_consulta y se mostrarán más o menos según elijas. Eso si, si vas a modificarla también se debe cambiar el número sumado a la variable $empezar_fila para que se mantenga la correlación.
Mostrar Resultados Horizontalmente
La segunda parte del código que nos interesa es como mostrar la consulta horizontalmente, para esto nos valemos del bucle do…while…
<table>
<tr>
<td colspan="3"><strong>Numeros Extraidos <br />de la Base de Datos</strong> </td>
</tr><tr>
<?php do { ?>
<td>Imagen <?php echo $fila1['id_art']; ?></td>
<?php } while ($fila1 = mysql_fetch_assoc($resultado1)); ?>
</tr>
<tr>
<?php do { ?>
<td>Imagen <?php echo $fila2['id_art']; ?></td>
<?php } while ($fila2 = mysql_fetch_assoc($resultado2)); ?>
</tr>
<tr>
<?php do { ?>
<td>Imagen <?php echo $fila3['id_art']; ?></td>
<?php } while ($fila3 = mysql_fetch_assoc($resultado3)); ?>
</tr>
</table>
Esto es simple, creamos una tabla y aplicamos el bucle sólo a las etiquetas td, en este caso creamos tres filas y a cada una el bucle con los límites ya vistos.
Finalmente la Paginación
Para variar del videotutorial, vamos a crear una paginación textual, como puedes ver el código es claro, en cuanto al inicio y fin no hay ninguna modificación que debas hacer, pero si cambias el numero de resultados de la consulta, se debe cambiar el numero que sumas a la variable $iniciar_consulta en los links.
Con esto ya tienes tu paginación de resultados horizontalmente.
Pueden ver el resultado desde este enlace.





Es posible que dejes un ejemplo con la paginación que intente hacerlo y al final me enrrede por completo.. además que es el único sistema de paginación en columnas que e encontrado .. y de verdad me a servidor bastante.. sólo me falta la paginacion xD
- responder
Enviado por Marckk_ (no verificado) el Lun, 10/03/2005 - 08:25.Que tal Marckk_, acabo de subir el código sql y php del ejemplo listo para que lo pruebes, están en el área de descargas. Espero te sirva, y si algo no funciona, no dudes en comentarlo. Saludos.
- responder
Enviado por Balú (no verificado) el Lun, 10/03/2005 - 12:55.La verdad este sistema de paginado es el mejor que e encontrado, y me funciona todo sin problemas
- responder
Enviado por Marckk_ (no verificado) el Jue, 01/05/2006 - 08:53.Hola probe este script y me funciono y pero si quiero que cuando no encuentre imagen en la base me ponga una imgen fija en que parte se pone el codigo y como seria el mismo. gracias
- responder
Enviado por Jose (no verificado) el Mar, 02/07/2006 - 05:47.Hola jose, tienes varias formas de hacerlo, una fácil es usando el condicional if con la variable $total_de_resultados, y lo ubicas antes de la tabla. La idea es así: <?php if ($total_de_resultados > 0) { Aquí va el codigo de la tabla y paginación; } if ($total_de_resultados < 1) { echo "Se muestra la imagen por defecto"; } ?>
- responder
Enviado por Balú (no verificado) el Mié, 02/08/2006 - 00:45.Gracias por la respuesta, si entiendo quedaria algo asi:<?phpif ($total_de_resultados > 0) {echo "<table><tr><td colspan="3"><strong>Numeros Extraidos <br />de la Base de Datos</strong> </td></tr><tr><?php do { ?> <td>Imagen <?php echo $fila1['id_art']; ?></td> <?php } while ($fila1 = mysql_fetch_assoc($resultado1)); ?></tr><tr><?php do { ?> <td>Imagen <?php echo $fila2['id_art']; ?></td> <?php } while ($fila2 = mysql_fetch_assoc($resultado2)); ?></tr><tr><?php do { ?> <td>Imagen <?php echo $fila3['id_art']; ?></td> <?php } while ($fila3 = mysql_fetch_assoc($resultado3)); ?></tr></table> ";}if ($total_de_resultados < 1) {echo "Se muestra la imagen por defecto";}?>pero de esta forma si noy imagen me muestra lo predifinido por mi, pero si quiero que en cada fila cuando no contenga datos me ponga la imagen predifinada asi completo una X cantidad de imagen en una pagina, Ejemplo asi:<table width="329" border="1"> <tr> <td width="84">imagen 1 </td> <td width="79">imagen 2 </td> <td width="84">sin imagen </td> </tr> <tr> <td>sin imagen </td> <td>sin imagen </td> <td>sin imagen </td> </tr> <tr> <td>sin imagen </td> <td>sin imagen </td> <td>sin imagen </td> </tr></table>te puse el codigo de una tabla para que veas como quedaria.
- responder
Enviado por jose (no verificado) el Mié, 02/08/2006 - 13:38.En realidad esto escapa a la finalidad de este código, por lo que debes crear algo más de código. Aquà te doy unas luces de cómo lo puedes hacer. Básicamente consiste en lo mismo, condicionales.Reemplaza: <?php echo $fila1['imagen']; ?>Por:<?php if (stristr($fila1['imagen'],"3")){ echo $fila1['imagen'];}else {echo "no hay imagen";}?>Si pruebas el código, veras como en las dos primeras celdas de la fila superior aparece "no hay imagen", esto porque precisamos que si en la imagen se encuentra el número 3, se muestre la imagen, de lo contrario “no hay imagen”. Ahora, para ponerlo en práctica con imágenes cambia el número por ejemplo con “<img”, porque siempre que queremos mostrar imágenes escribimos ese tag, si la consulta no tiene “<img” entonces mostrará la imagen por defecto.Ahora esto aplÃcalo en las otras dos filas. Espero te sea de utilidad, saludos.
- responder
Enviado por Balú (no verificado) el Mié, 02/08/2006 - 15:04.gracias por tu ayuda ahora me queda mas claro como es el sistema.
- responder
Enviado por jose (no verificado) el Jue, 02/09/2006 - 10:00.necesito saber como agregar un link a algun registro que me muestre paginado para que al hacer click en ese link vaya a otro archivo.gracias
- responder
Enviado por maxi (no verificado) el Mar, 03/14/2006 - 03:06.ya baje el ejemplo y lo implemente a mi pagina.. y funciono excelente... nada mas como dice markk me hace falta la paginacion, gracias al equipo de baluart =)
- responder
Enviado por cesar_lga el Mar, 04/29/2008 - 12:08.Cesar suscrÃbete a nuestro newsletter, que siempre vamos publicando cosas interesantes de tecnologÃa y desarrollo web.
Aquà les dejo otro tutorial que publicamos hace poco tiempo.
http://www.baluart.net/articulo/paginacion-perfecta-con-php
Saludos
- responder
Enviado por baluart el Mar, 04/29/2008 - 13:06.Bueno, si sólo se trata de agregar links, basta utilizar las etiquetas html <a>... Si te explicas mejor, seguro podré ayudarte. Saludos.
- responder
Enviado por Balú (no verificado) el Mié, 03/15/2006 - 03:29.mi consulta es que si se puede implementar la paginaci
- responder
Enviado por Rockero_Empedernido (no verificado) el Sáb, 10/14/2006 - 18:20.Bueno, quiero saber como inserto una imagen de cualquier tipo de extension por ejemplo jpg,gif,bmp... en una base de datos de mysql con php y despues mostrarla la imagen. Por ejemplo si tengo una tabla de usuarios con algunos datos como el codigo,nombre,telefono, direccion y la imagen. Y otra preguntica necesito tambien un codigo en php que sea facil para realizar copia de mi base de datos y la realizacion de la restauracion de la misma esto es para mi tesis de grado con estoy realizando. Le agradezco de atemano la colaboracion prestada, Gracias...
- responder
Enviado por carlos (no verificado) el Mar, 10/17/2006 - 15:53.Bueno, quiero saber como inserto una imagen de cualquier tipo de extension por ejemplo jpg,gif,bmp... en una base de datos de mysql con php y despues mostrarla la imagen. Por ejemplo si tengo una tabla de usuarios con algunos datos como el codigo,nombre,telefono, direccion y la imagen. Y otra preguntica necesito tambien un codigo en php que sea facil para realizar copia de mi base de datos y la realizacion de la restauracion de la misma esto es para mi tesis de grado con estoy realizando. Le agradezco de atemano la colaboracion prestada, Gracias...
- responder
Enviado por carlos (no verificado) el Mar, 10/17/2006 - 15:53.Tengo un problema.... Necesito mostrar el resultado de una busqueda, los parametros de la busqueda estan se escojen de unos list value y con esos criterios mostrar los relacionados a esos campos... lo necesito hacer con paginacion puesto que son muchos registros... de antemano Gracias
- responder
Enviado por Jonathan (no verificado) el Mar, 12/05/2006 - 15:07.Hola Jonathan, lo referente a la busqueda no te podr
- responder
Enviado por Bal (no verificado) el Mié, 12/06/2006 - 12:24.Hola. Tengo un problema para mostrar la imagen que he subido. Cuando trato de visualizarla, me sale en codigo ASCII. En uno de los comentarios pusiste que se necesita poner la etiketa "
- responder
Enviado por Eric (no verificado) el Dom, 01/07/2007 - 13:07.Hola. Tengo un problema para mostrar la imagen que he subido. Cuando trato de visualizarla, me sale en codigo ASCII. En uno de los comentarios pusiste que se necesita poner la etiketa "
- responder
Enviado por Eric (no verificado) el Dom, 01/07/2007 - 13:07.img, pero, en donde se coloca esa etiketa? gracias por la atencion y por este metodo. Es el mejor que he encontrado
- responder
Enviado por Eric (no verificado) el Dom, 01/07/2007 - 13:19.img, pero, en donde se coloca esa etiketa? gracias por la atencion y por este metodo. Es el mejor que he encontrado
- responder
Enviado por Eric (no verificado) el Dom, 01/07/2007 - 13:19.img, pero, en donde se coloca esa etiketa? gracias por la atencion y por este metodo. Es el mejor que he encontrado
- responder
Enviado por Eric (no verificado) el Dom, 01/07/2007 - 13:19.hola, quisiera saber si tienen algun ejemplo para "Numerar filas" pero en una "paginacion" espero que se entienda...
- responder
Enviado por web's (no verificado) el Vie, 01/26/2007 - 15:59.hola, un ejemplo de "Numerar filas" como este: 1. columna1, columna2, columna3,...,columna202. columna1, columna2, columna3,...,columna203. columna1, columna2, columna3,...,columna20...20. columna1, columna2, columna3,...,columna20pero que sean paginadas, o sea ,que la "Numeracion de filas" continuen en forma asendente o desndente en la pagina que le sigue y no que vuelvan a empesar nuevamente la "Numeracion".Espero haber sido claro y que entiendan... Gracias
- responder
Enviado por web (no verificado) el Vie, 01/26/2007 - 16:07.Hola web, nunca hab
- responder
Enviado por Bal (no verificado) el Vie, 01/26/2007 - 16:23.ok, ya se pero lo quisiera a lo largo de una paginacion, una pagina con las filas numeradas, la otra pagina que sigue con las filas numeradas correlatimamente a la anterior y asi susecivamente y no que comience a numerarse desde el principo nuevamente en cada paginagracias!.
- responder
Enviado por web's (no verificado) el Vie, 01/26/2007 - 17:55.Hola Webs, una alternativa es añadir una nueva variable a la paginaci
- responder
Enviado por Bal (no verificado) el Dom, 01/28/2007 - 00:43.hola Balu, disculpas pero soy medio nuevo en esto, si me prodrias dar un ejemplo de ello estare agradecidosalu2!
- responder
Enviado por web's (no verificado) el Mar, 01/30/2007 - 07:48.Hola Web's. He vuelto a leer tus preguntas y creo que las entend
- responder
Enviado por Bal (no verificado) el Mar, 01/30/2007 - 08:58.Hola gente, primero que nada aclaro que soy nuevo en este tema. Lo que necesito es ayuda para "Numerar filas" con paginaci
- responder
Enviado por web's (no verificado) el Mar, 01/30/2007 - 17:04.Deja tu comentario