Duda urgente en while (tabla)

-_-NaMcO-_-

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

r2d2rigo

Haz un contador. Inicializalo a 0 fuera del bucle. En cada iteracion del bucle, lo aumentas en 1. Si el modulo 4 es 0, imprime una nueva linea de tabla.

$contador = 0;
echo "<tr>";
while ($resultado=mysql_fetch_row())
{
echo "<td>mi resultado blabalbal</td>";
$contador++;
if ($contador % 4 == 0)
{
echo "</tr><tr>";
}
}
echo "</tr>";
Fr4nk0

Además de lo que dice #2, el "echo <table> ... " debe ir fuera del while, porque si no estás creando una tabla en cada iteración del while.

JuAn4k4

#2 Por lo general dentro del if ( contador.. ) deberia haber un contador = 0; aunque funcione igual, no sabes cuantos resultados puede haber en la consulta, pero es una tonteria.

-_-NaMcO-_-

Vale, el tema está ya solucionado, lo e echo con un contador como decis...

Gracias por la ayudaa!

Usuarios habituales

  • -_-NaMcO-_-
  • JuAn4k4
  • Fr4nk0
  • r2d2rigo