Bien! Hay muchos post en forosdelweb sobre ese tema, pero hice una función bastante sencilla y funciona muy bien pero muy bien...
Código PHP:
$columnas = 3;
$contador = 0;
echo "<table width=$ancho border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
while ($rows = mysql_fetch_array($consulta)) {
if ($contador == $columnas) {
$contador = 0;
echo "<tr></tr>";
}
$contador++;
echo "<TD>".$rows['nombre']."</TD>";
}
// Luego que termino de imprimir todos los resultados debo completar las celdas si faltan para que la tabla quede bien armada
$total = mysql_num_rows($consulta);
$tmp=$total/$columnas;
while (gettype($tmp) != "integer"){ // Si no es integer entonces no es múltiplo del nº de columnas
echo "<td> </td>";
$total++;
$tmp=$total/$columnas;
}
//Cerramos la tabla
echo "</table>";
Con este sencillo código n vas a tener problemas, obvio lo puedes usar para hacer una función o para hacer un método de clase y te queda chiche bombón!
Lo hice hace bastante y con un poco más de complejidad la uso y anda muy bien.
Espero qye te sirva.
Saludos