Foros del Web » Programando para Internet » PHP »

Duda en WHILE (con tabla)

Estas en el tema de Duda en WHILE (con tabla) en el foro de PHP en Foros del Web. --SOLUCIONADO-- Muy buenas, vereis, estoy haciendo una página en PHP y se me a presentado una duda que me urge porque tengo que entregarla en ...
  #1 (permalink)  
Antiguo 21/09/2009, 12:09
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Duda en WHILE (con tabla)

--SOLUCIONADO--

Muy buenas, vereis, estoy haciendo una página en PHP y se me a presentado una duda que me urge porque tengo que entregarla en breve, os explico, hago un query a la base de datos y luego un while para que me vaya devolviendo resultados, hasta ahí sin problemas, el problema viene cuando estamos en una tabla, vereis, yo quiero que devuelva 4 resultados por linea y luego salte, es decir, cada 4 <td> de tabla tendría que aparecer un </tr> para el salto de linea, a lo mejor es una tontería pero llevo toda la tarde pensando y no me aparece la solución, cada vez me lio más.

El codigo que estoy usando, para que me entendais, pongamos que es este:

--------------------------
$ll=mysql_query("SELECT * FROM fotosfiestas WHERE idperf='$idperf' LIMIT 0,20";
while($lol=mysql_fetch_array($ll)) {
echo '<table width="400" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="100">foto1</td>
<td height="100">foto2</td>
<td height="100">foto3</td>
<td height="100">foto4</td>
</tr>
<tr>
<td height="100">foto5</td>
<td height="100">foto6</td>
<td height="100">foto7</td>
<td height="100">foto8</td>
</tr>
</table>';
}
--------------------------

No se como tendria q editarlo para que hiciese lo que os digo... supongo que el while tendría que ir uno por uno, contar el total y dividirlo y luego cada 4 <td> que devuelva que cierre 1 linea, pero claro, asi si no hay suficientes <td> no cierra la linea y la tabla se va a freirla...

¿alguien me ayuda con el codigo, o me dice otra forma posible de hacerlo con php?

un saludo y gracias

Última edición por namco; 21/09/2009 a las 17:05 Razón: Problema solucionado
  #2 (permalink)  
Antiguo 21/09/2009, 12:13
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Duda urgente en WHILE (con tabla)

usa un contador dentro del ciclo ($i++) y un condicion cuando el resto de $i/4 ($i % 4 == 0) es ahí en donde aplicas el corte (echo "</td></tr><tr><td>")
  #3 (permalink)  
Antiguo 21/09/2009, 12:18
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Duda urgente en WHILE (con tabla)

Algo asi:
Código PHP:
$x=0;

while(
$lol=mysql_fetch_array($ll)) {
echo 
"<table width='400' cellpadding='0' cellspacing='0' border='0'><tr>"
if($x<){
echo 
"<tr><td height='100'>$lol[$foto]</td>"// Aqui devuelves las fotos
$x+=1;
}
else {
echo 
"</tr>";
$x=0;
}


  #4 (permalink)  
Antiguo 21/09/2009, 12:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Duda urgente en WHILE (con tabla)

no te entiendo, podrias escribirme un pequeño ejemplo dentro de mi código? esque llevo horas y horas y no me puedo exprimir mas la cabeza.. jajee perdona tio

nonpublic que sería el $i del if($i <4) ?
  #5 (permalink)  
Antiguo 21/09/2009, 12:22
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Duda urgente en WHILE (con tabla)

seria un error de tipeo ya lo reemplace por la x

Si dices cual es el campo que contiene la imagen te pondria un codigo mas exacto.
  #6 (permalink)  
Antiguo 21/09/2009, 12:23
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
a valee :) jaja, esque no entendia el codigo y busco entenderlo para las próximas veces jeje!

si no, asi me va bien gracias, voi a probar, entiendo todo el concepto, es decir, que me devuelva la imagen i tal lo entendida, lo que no sabia era como hacer que dentro del mismo while me fuese devolviendo 1,2,3,4 en las fotos y luego hacer lo del tr, con todo voi a probar i te digo algo.

GRACIAS :)!

bueno.. haciendolo así como os pongo abajo.. devuelve todos los <td> bien y el </tr> tambien, sin embargo la dificultad que es lo que yo buscaba, es que si hay menos de 4 resultados en el query, no devuelve el </tr> del final, y si hay más de 4, no aparece otra linea de <tr></tr>, es decir, que solo funciona con los 4 primeros resultados, cuando mi idea era mostrar 12, 4 por linea, 3 lineas.

os pego el codigo:

<?
include('config.php');
$ll=mysql_query("SELECT * FROM galerias ORDER BY id DESC LIMIT 0,12");
$x=0;

echo "<table width='400' cellpadding='0' cellspacing='0' border='0'><tr>";
while($lol=mysql_fetch_array($ll)) {

if($x<4 ){
echo "<td height='100'>FOTO</td>"; // Aqui devuelves las fotos
$x+=1;
}
else {
echo "</tr>";
$x=0;
}
}
echo "</table>";
?>

Última edición por GatorV; 21/09/2009 a las 16:59
  #7 (permalink)  
Antiguo 21/09/2009, 13:02
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Duda urgente en WHILE (con tabla)

Para ello deberias saber previamente cuantos resultados devuelve tu busqueda
mediante mysql_num_rows y aplicar el metodo que te indico maycolalvarez buscando multiplos de 4 y comparando $x con el valor devuelto por mysql_num_rows

Cita:
$nres=mysql_num_rows($ll);
  #8 (permalink)  
Antiguo 21/09/2009, 13:08
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Duda urgente en WHILE (con tabla)

perdona nonpublic no consigo llevarlo a cabo, podrias hacerme un pequeño ejemplo? me estoi volviendo loco hoy con el temita este xD
  #9 (permalink)  
Antiguo 21/09/2009, 14:40
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: Duda urgente en WHILE (con tabla)

Hola namco.

Te dejo aqui una forma que mi buen amigo GatorV me facilito y que gracias a el deje de liarme tanto xD

Código PHP:
$total 4//Este es el valor de columnas
$contador 0;
echo 
"<table><tr>";
while(
$lol mysql_fetch_array($ll))
{
       echo 
'<td>'$lol['foto'].'</td>';
       
$contador++;
       if (
$contador == $total)
       {
              echo 
'</tr><tr>';
              
$contador 0;
}
echo 
"</tr></table>"
Espero te sirva :)
  #10 (permalink)  
Antiguo 21/09/2009, 16:49
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Duda urgente en WHILE (con tabla)

JessicaTJ muchísimas gracias, si que me ha servido, no sabes de que apuro me has sacado.. creo que todos sabemos lo que 10 horas seguidas de programación intentando encontrar 1 solucion conllevan jejeje... hoy ya podre dormir tranquilo..

Te debo una, a ti y a todos los que me habeis echado un cable.. GRACIAS :)!
  #11 (permalink)  
Antiguo 22/09/2009, 00:22
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: Duda en WHILE (con tabla)

Si namco, te entiendo, se lo ke es buscar una solucion y no poder encontrarla, gracias a Dios existe esta comunidad

Por nada, y que duermas bien
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:28.