Es cuestión de ingeniártelas un poco.
Código PHP:
$consulta= mysql_query("SELECT * FROM productos WHERE categoria='cat1");
$salida = '<table width="300" border="1" cellpadding="0" cellspacing="0">';
$salida .= '<tr>';
$contador =1;
while($row=mysql_fetch_assoc($consulta))
{
$salida .= "<td >$row[id_prod]</td>";
if ($contador == 3)
{
$contador = 1;
$salida .= "</tr><tr>";
}
else
$contador++;
}
$salida .= "</tr></table>";
echo $salida;
Cada tres resultados va a agregar una nueva fila y estarás en difrerentes "td".
Este ejemplo decódigo te genberará exactamente lo que necesitas según tu ejemplo de arriba:
Cita: <table width="300" border="1" cellpadding="0" cellspacing="0">
<tr>
<td >RESULTADO1</td>
<td >RESULTADO2</td>
<td >RESULTADO3</td>
</tr>
<tr>
<td >RESULTADO4</td>
<td >RESULTADO5</td>
<td >RESULTADO6</td>
</tr>
<tr>
<td >RESULTADO7</td>
<td >RESULTADO8</td>
<td >RESULTADO9</td>
</tr>
</table>
Saludos