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.





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.Web's espero que hayas visto el videotutorial de paginaci
- responder
Enviado por Bal (no verificado) el Mié, 01/31/2007 - 00:18.Ok, muchas gracias por tu ayuda!!! Saludos!!!
- responder
Enviado por web's (no verificado) el Mié, 01/31/2007 - 13:09.Ok, ya lo probe y funciona perfectamente...nuevamente graciasSalu2!
- responder
Enviado por web's (no verificado) el Mié, 01/31/2007 - 13:37.De nada, un saludo
- responder
Enviado por Bal (no verificado) el Mié, 01/31/2007 - 17:24.Hola, nueva consulta, utilizando un ejemplo x de un listado de usuarios logeados pero especificamente cuando los ordenamos por ejemplo por fecha y hora registrado en BD en forma ASC o DESC ("esteo es lo que quiero pero en forma cronologica") quisiera saber si me podes ayudar a mejorarlo, ya que si bien en el ejemplo que tengo me los ordena, pero no correlativamente en fecha calendario sino por abecdario en forma ASC y/o DESC, si vos o aguien me puede ayudar estare muy agradecido. Gracias y Saludos!!!
- responder
Enviado por web's (no verificado) el Mié, 01/31/2007 - 18:57.Hola, hay alguien...?????, si lo hay por favor ayudarme. El campo en cuestion es un solo y se llama "fecha_y_hora" ya probe "order by fecha_y_hora" y me lo ordenaba alfabeticamente y no por fecha calendario como quer
- responder
Enviado por web's (no verificado) el Vie, 02/02/2007 - 13:43.Hola, excelente tutorial, me ha sido de ayuda increible.Lo unico que me gustaria me hicieran el favor de ayudarme es con un LINK en cada imagen que se vaya a la informacion de cada foto, tenia una forma y funcionaba pero no se como implementarlo con la que descargue de aqui.Gracias!
- responder
Enviado por David777 (no verificado) el Vie, 02/02/2007 - 16:30.Hola Web's, no necesitas dar formato en mysql, puedes hacer en php. Te recomiendo utilices split y list para partir el string y almacenar la informaci
- responder
Enviado por Bal (no verificado) el Vie, 02/02/2007 - 16:53.David777, tienes que crear m
- responder
Enviado por Bal (no verificado) el Vie, 02/02/2007 - 16:57.Bal
- responder
Enviado por David777 (no verificado) el Vie, 02/02/2007 - 21:04.Oh pues aki molestando otra vez, solo una pregunta: le kite parte del codigo para que me mostrara 4 columnas en 2 renglones de la tabla y le puse en la uno hasta 4 y para la dos hasta 8. asi en total tendre 8 fotos acmodadas pero... he puesto solo 7 y ya me aparece el paginado siguiente y ultimo, y si le doy clik me manda a otra hojita con 3 fotos.en que estoy mal?
- responder
Enviado por David777 (no verificado) el Sáb, 02/03/2007 - 13:29.una ayudota por ahi plis!
- responder
Enviado por David777 (no verificado) el Mié, 02/07/2007 - 11:30.Que tal balu.Pues aqui visitando tu web por este script que me recomendo un amigo. Muy buen script, felicidades.Mi duda es la siguiente:Use tu script y me muetra bien todo pero en las filas aun cuando no hay nada en la base de datos me pone una imagen que no existe (esa horrible X) y el link a la nada, lo que pasa es que en el script le puse que mostrara una imagen con su respectivo link. este es mi codigo: table cellpadding="0" cellspacing="0" bordercolor="0" bgcolor="#FEEACB" class="borde"> <tr> <?php do { ?> <td align="center" valign="middle" class="normal2"><a href="item_show.php?code_no=<?php echo $fila1 ['code_no']; ?>"><img src="images/<?php echo $fila1 ['detalle']; ?><?php echo $fila1 ['image']; ?> "width="170" height="125" border="0" /><br/> <?php echo $fila1 ['item']; ?><br/> <?php echo $fila1 ['modelo']; ?></span><br /> </a></td> <?php } while ($fila1 = mysql_fetch_assoc($resultado1)); ?> </tr> <br /> <br /> <tr> <?php do { ?> <td align="center" valign="middle" class="normal2"><a href="item_show.php?code_no=<?php echo $fila2 ['code_no']; ?>"> <img src="images/<?php echo $fila2 ['detalle']; ?><?php echo $fila2 ['image']; ?> "width="170" height="125" border="0" /><br/> <?php echo $fila2 ['item']; ?><br/> <?php echo $fila2 ['modelo']; ?></span><br /> </a></td> <?php } while ($fila2 = mysql_fetch_assoc($resultado2)); ?> </tr> </table> No soy muy bueno en php, apenas empece en esto. Me podras ayudar a que no aparesca nada, ni imagen ni link cuando no hay en la base de datos?.Saludos
- responder
Enviado por SAiKO (no verificado) el Sáb, 02/10/2007 - 19:00.Que tal balu.Pues aqui visitando tu web por este script que me recomendo un amigo. Muy buen script, felicidades.Mi duda es la siguiente:Use tu script y me muetra bien todo pero en las filas aun cuando no hay nada en la base de datos me pone una imagen que no existe (esa horrible X) y el link a la nada, lo que pasa es que en el script le puse que mostrara una imagen con su respectivo link. este es mi codigo: table cellpadding="0" cellspacing="0" bordercolor="0" bgcolor="#FEEACB" class="borde"> <tr> <?php do { ?> <td align="center" valign="middle" class="normal2"><a href="item_show.php?code_no=<?php echo $fila1 ['code_no']; ?>"><img src="images/<?php echo $fila1 ['detalle']; ?><?php echo $fila1 ['image']; ?> "width="170" height="125" border="0" /><br/> <?php echo $fila1 ['item']; ?><br/> <?php echo $fila1 ['modelo']; ?></span><br /> </a></td> <?php } while ($fila1 = mysql_fetch_assoc($resultado1)); ?> </tr> <br /> <br /> <tr> <?php do { ?> <td align="center" valign="middle" class="normal2"><a href="item_show.php?code_no=<?php echo $fila2 ['code_no']; ?>"> <img src="images/<?php echo $fila2 ['detalle']; ?><?php echo $fila2 ['image']; ?> "width="170" height="125" border="0" /><br/> <?php echo $fila2 ['item']; ?><br/> <?php echo $fila2 ['modelo']; ?></span><br /> </a></td> <?php } while ($fila2 = mysql_fetch_assoc($resultado2)); ?> </tr> </table> No soy muy bueno en php, apenas empece en esto. Me podras ayudar a que no aparesca nada, ni imagen ni link cuando no hay en la base de datos?.Saludos
- responder
Enviado por SAiKO (no verificado) el Sáb, 02/10/2007 - 19:44.Que tal balu.Pues aqui visitando tu web por este script que me recomendo un amigo. Muy buen script, felicidades.Mi duda es la siguiente:Use tu script y me muetra bien todo pero en las filas aun cuando no hay nada en la base de datos me pone una imagen que no existe (esa horrible X) y el link a la nada, lo que pasa es que en el script le puse que mostrara una imagen con su respectivo link. este es mi codigo: table cellpadding="0" cellspacing="0" bordercolor="0" bgcolor="#FEEACB" class="borde"> <tr> <?php do { ?> <td align="center" valign="middle" class="normal2"><a href="item_show.php?code_no=<?php echo $fila1 ['code_no']; ?>"><img src="images/<?php echo $fila1 ['detalle']; ?><?php echo $fila1 ['image']; ?> "width="170" height="125" border="0" /><br/> <?php echo $fila1 ['item']; ?><br/> <?php echo $fila1 ['modelo']; ?></span><br /> </a></td> <?php } while ($fila1 = mysql_fetch_assoc($resultado1)); ?> </tr> <br /> <br /> <tr> <?php do { ?> <td align="center" valign="middle" class="normal2"><a href="item_show.php?code_no=<?php echo $fila2 ['code_no']; ?>"> <img src="images/<?php echo $fila2 ['detalle']; ?><?php echo $fila2 ['image']; ?> "width="170" height="125" border="0" /><br/> <?php echo $fila2 ['item']; ?><br/> <?php echo $fila2 ['modelo']; ?></span><br /> </a></td> <?php } while ($fila2 = mysql_fetch_assoc($resultado2)); ?> </tr> </table> No soy muy bueno en php, apenas empece en esto. Me podras ayudar a que no aparesca nada, ni imagen ni link cuando no hay en la base de datos?.Saludos
- responder
Enviado por SAiKO (no verificado) el Sáb, 02/10/2007 - 20:13.Hola,como se podria combinar el codigo de paginacion en columnas con el de paginacion con numeros como del tipo de google?Arriba decis que vas a poenr el codigo.Ojala me puedas ayudar
- responder
Enviado por Carlos (no verificado) el Mar, 02/20/2007 - 14:42.Hola a todos, me result
- responder
Enviado por Sebastian Mu (no verificado) el Vie, 02/23/2007 - 07:24.Hola a todos, tengo un problema el codigo es excelente pero necesito mostrar debajo de cada imagen el nombre de la misma pero no se como hacerlo practicamente soy nuevo programando, si me pueden ayudar se los agradesco
- responder
Enviado por Eduardo (no verificado) el Dom, 03/18/2007 - 12:40.Eduardo, en tu tabla debes tener otro campo con el titulo, llamalo title_img. Luego en las consultas añade ese campo, por ejemplo fijate en el c
- responder
Enviado por Bal (no verificado) el Dom, 03/18/2007 - 16:29.Antes que nada felicito al creador de esta pagina,Con respecto al ejemplo de paginaci
- responder
Enviado por PEPE (no verificado) el Mié, 04/04/2007 - 10:03.hola amigos es exelente el script muchas felicidadestengo una duda poniendo el ejmplo en la tabla donde dice Numeros Extraidos de la Base de Datosahi quisiera poner el primer registro de cada paginacion es decir al cargar la pagina en esa celda iria el registro 1 y ya despues mostrar los demas en columnas y asi sucesivamente tiene alguna idea de como podria hacerlesaludos
- responder
Enviado por gerardo (no verificado) el Sáb, 04/07/2007 - 15:12.Hola, necesito ayuda con esto: estoy haciendo un foro en el que los resultados de los mensajes posteados est
- responder
Enviado por web's (no verificado) el Lun, 04/16/2007 - 08:56.Disculpas por el mismo mensaje 2 veces, se me escapo.
- responder
Enviado por web's (no verificado) el Lun, 04/16/2007 - 08:57.Deja tu comentario