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:
<?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.
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
Hola, necesito ayuda con esto: estoy haciendo un foro en el que los resultados de los mensajes posteados est
Disculpas por el mismo mensaje 2 veces, se me escapo.
Web's en estos casos lo que debes hacer es recuperar la id de inserci
Gerardo y chicos, suscr
Hola, necesito una mano con esto: estoy realizando un foro y en la parte en que se "CITA" un post de un mensaje x no se cual es la mejor manera de hacerlo, tengo una BD , una tabla foro y dentro de ella un campo respuesta(text) donde llegaran las respuestas o citas del mensaje contestado. hola, yo utilizo template y dentro text area donde se escriben mensajes coloco esto: set_var("comentario","corcheteQUOTE=$fqr2->usuario]" . $_REQUEST['r'] . "corchete/QUOTEcorchete"); donde $fqr2->usuario es el usuario que escribio el mensaje y $_REQUEST['r'] es el mensaje, ahora para imprimir los resultados como se hace para que los mismos aprarescan sin el "corcheteQUOTEcorchetecorchete/QUOTEcorchete", est
los codigos php estan buenos pero falta hacer un tutorial de busqueda es decir buscar registros desde un combobox(select) por ejemplo por categorias y luego paginarlos espero pronto halla y una publicacio sobre el temasalu2
Mostrar correctamente resultados de BD!!! Hola, estoy haciendo la pagina index de un foro y quisiera mostrar correctamente sus resultados generados desde BD, para ejemplificar mejor es como el index de este foro, que en ella esta dividida por categorias y subcategorias y lo quiero tal cual est
podrias porfavor mandar de nuevo el codigo de la paginacion no se ve :( graciasssss
Hola Bal
Hola Bal
Páginas