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

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

Imagen de Lalo_1484

Hola Marckk estoy buscando este scrip por todos lados pero no encuentro haber si me puedes compartir el codigo de paginacion en 3 columnas lo necesito para un proyecto. mi correo es lalosamuel@hotmail.com

Imagen de Balú
Balú

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.

Imagen de Marckk_

La verdad este sistema de paginado es el mejor que e encontrado, y me funciona todo sin problemas

Imagen de Jose
Jose

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

Imagen de Balú

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"; } ?>

Imagen de jose
jose

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.

Imagen de Balú

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.

Imagen de jose
jose

gracias por tu ayuda ahora me queda mas claro como es el sistema.

Imagen de maxi
maxi

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 

Imagen de Backonline
Backonline

Hola estoy intentando realizar este genial tutorial pero no puedo descargar el codigo, al intentar entrar en la zona de descargas, me sale un 404.
Alguien me lo podría enviar?
Gracias

Imagen de cesar_lga
cesar_lga

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 =)

Imagen de Alberto
Alberto

Hola, podrias subir el ejemplo de paginacion, o el link de la descarga, pues al parecer el link que indicas esta roto.

Imagen de emcpublicidad
emcpublicidad

Buenas necesito el codigo pero al parecer no esta disponible, como se haria para hacerlo llegar. Gracias

Imagen de Editorial
Editorial

Que lástima que la descarga ya no existe. Necesito el código, para revisarlo, probarlo y ver si, efectivamente, me entrega resultados en columnas (necesito que los resultados sean en 2 columnas), que es lo que necesito.

Ojalá el Webmaster me de una manito con este asunto.

Gracias!

Imagen de Anonymous
Anonymous

hola,

no entiendo una cosa:

donde defines 'iniciar_consulta'

Imagen de aljarovi
aljarovi

buenas el codigo esta muy bueno pero tiene un error en paginacion cuando llegas al ultimo registro ya que aparecen unos cuadros que dicen imagen que no existen.

Imagen de jordamo
jordamo

como puedo descargar el codigo fuente? estoy registrado pero no puedo ver el enlace de descarga. Gracias!

Imagen de baluart
Imagen de baluart
baluart

Backonline, para descargar el código fuente debes registrarte en Baluart.NET

http://www.baluart.net/user/register

Luego regresa a este artículo y al final verás un enlace de descarga.

Saludos y no olvides suscribirte al blog!!!

Imagen de baluart
baluart

Para descargar el código debes ser un usuario registrado. Saludos.

Imagen de Balú

Bueno, si sólo se trata de agregar links, basta utilizar las etiquetas html <a>... Si te explicas mejor, seguro podré ayudarte. Saludos.

Imagen de Rockero_Empedernido
Imagen de carlos
carlos

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

Imagen de carlos
carlos

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

Imagen de Jonathan
Jonathan

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

Imagen de Bal

Hola Jonathan, lo referente a la busqueda no te podr

Imagen de Eric
Eric

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 "

Imagen de Eric
Eric

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 "

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

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