Mostrar Resultados Horizontalmente y Paginados con PHP y MySQL

baluart21 Julio 2005 - 12:00pm 71 comentarios
Enviar por Email Imprimir

1Explicar desde el principio este script resultaría redundante, pues ya hemos tratado parte de este tema, para ello los remito a:

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:

<?php
$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 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.

Comentarios

Imagen de Eric
Eric

img, pero, en donde se coloca esa etiketa? gracias por la atencion y por este metodo. Es el mejor que he encontrado

Imagen de Eric
Eric

img, pero, en donde se coloca esa etiketa? gracias por la atencion y por este metodo. Es el mejor que he encontrado

Imagen de web&#039;s
web's

hola, quisiera saber si tienen algun ejemplo para "Numerar filas" pero en una "paginacion" espero que se entienda...

Imagen de web
web

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 

Imagen de Bal
Imagen de web&#039;s
web's

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!.

Imagen de Bal

Hola Webs, una alternativa es añadir una nueva variable a la paginaci

Imagen de web&#039;s
web's

hola Balu, disculpas pero soy medio nuevo en esto, si me prodrias dar un ejemplo de ello estare agradecidosalu2! 

Imagen de Bal

Hola Web's. He vuelto a leer tus preguntas y creo que las entend

Imagen de web&#039;s
web's

Hola gente, primero que nada aclaro que soy nuevo en este tema. Lo que necesito es ayuda para "Numerar filas" con paginaci

Imagen de Bal

Web's espero que hayas visto el videotutorial de paginaci

Imagen de web&#039;s
web's

Ok, muchas gracias por tu ayuda!!! Saludos!!! 

Imagen de web&#039;s
web's

Ok, ya lo probe y funciona perfectamente...nuevamente graciasSalu2! 

Imagen de Bal
Imagen de web&#039;s
web's

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!!!

Imagen de web&#039;s
web's

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

Imagen de David777
David777

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!

Imagen de Bal

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

Imagen de Bal

David777, tienes que crear m

Imagen de David777
David777

Bal

Imagen de David777
David777

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?

Imagen de David777
David777

una ayudota por ahi plis!

Imagen de SAiKO

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

Imagen de SAiKO

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

Imagen de SAiKO

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

Imagen de Carlos
Carlos

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

Imagen de Sebastian Mu
Sebastian Mu

Hola a todos, me result

Imagen de Eduardo

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

Imagen de Bal

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

Imagen de PEPE
PEPE

Antes que nada felicito al creador de esta pagina,Con respecto al ejemplo de paginaci

Páginas

Tutoriales

Cómo descargar videos de VK.com
En este artículo voy a explicar como descargar videos y películas...
Descargar Facebook Móvil Gratis
Por si aún no lo han hecho, es posible descargar Facebook Móvil...
Cómo generar tráfico web con las redes sociales - Paso a Paso
Muchas empresas están publicando contenidos como la forma de crear...

Artículo Recomendado

3 Tips cruciales para recuperar archivos eliminados
¿Te imaginas perder el trabajo de toda una semana en tan solo unos segundos? Todos hemos pasado por este problema. Quizás eliminamos por error un archivo importante o lo borramos sin pensar que era valioso para otro... más