Concuerdo con [rogertm], realizar consultas dentro de un repetitivo, es algo sofocante imagina pobre server. Podrias usar algo de joins para obtener esa informacion y al momento de mostrarla solo mostrar segun la categoria. Otro punto es que, Chicos que paso.... mysql_fetch_array, por que no usamos las sentencias de mysql adecuadamente, si recordamos un poco la teoria tenemos que mysql_fetch_array, genera dos arreglos cuando no se le especifica el tipo de arreglo como resultado, estos arreglos son asociativos y indexados numericamente,
Código PHP:
$subcategorias = mysql_fetch_array($consultasubcategoria);
Por lo cual seguimos recargando la tarea al server, usalo asi, para obtener el resultado en un arreglo indexado numericamente:
Código PHP:
$subcategorias = mysql_fetch_array($consultasubcategoria, MYSQL_NUM);
y para tenerlo asociativamente asi:
Código PHP:
$subcategorias = mysql_fetch_array($consultasubcategoria, MYSQL_ASSOC);
Jeje, espero no haber incomodado con esto, y creo que es hora de ir cambiando a mysqli, tiene muchas posiblidades y es mas limpio, saludos...