Holas Txt
Debes ir preguntando por cada vuelta del while en qué fila estás, de modo que cree una nueva fila sólo si está al inicio de una, etc. Yo lo hago algo así:
Código PHP:
echo "<table>";
$query = mysql_query("SELECT * FROM imagenes WHERE imagen = '$id' ORDER BY id DESC LIMIT 5");
$i = 0;
$t = mysql_num_rows($query);
while($query2 = mysql_fetch_array($query){
// inicia fila
if ($i % 4 == 0)
{ echo'<tr>'; }
// imprime celda (columna)
echo'<td><img src="'.$query2['imagen'].'" border="0"></td>';
// esto rellena con una celda vacia las columnas que no
// tienen imagenes al final de todo el resultset
if ($i == $t - 1 && $i % 4 < 3)
{ echo'<td colspan="'.(4 - ($i % 4)).'"> </td>'; }
// cierra fila
if ($i % 4 == 3 || $i == $t - 1)
{ echo'</tr>'; }
$i++;
}
echo'</table>';
No he probado esto, es solo teoria, pero te sirve de idea :) Saludos!
EDITADO: No sé por qué el primer signo porcentaje lo muestra con el código HTML, y no los siguientes. Como sea, si te entra la duda en esa línea, donde sale & #37 ; es un signo % en verdad (obtener el resto de división).