Bueno solo fue un error mio...
Prueba con este y verifica los cambios hechos...
Solo cambiale en la parte de consultas y demas por que uso el mini framework que tengo...
Código PHP:
<?php
include("mysql.php"); //podes borrar por que a vos no te sirve este, es solo para mi
$db = new MySQL(); // igual que el anterior
//Sacar las categorias
$cat = $db->consulta("SELECT id_cat, categoria FROM categorias ORDER BY id_cat ASC");
echo '
<table align="center" style="border:1px solid" cellspacing="1" cellpadding="5">
<tr>';
$i = 1; //Bandera
$columnas = 2;//Cantidad de columnas por fila
while($row_parent = $db->fetch_array($cat)){
//Sacar las subcategorias
$subcat = $db->consulta("SELECT id_subcat, subcategoria, id_cat FROM subcategorias WHERE id_cat = ".$row_parent['id_cat']." ORDER BY id_cat ASC");
$count = $db->num_rows($subcat);
//Si no hay una relacion entre cat y sub cat imprimimos la categoria
if(empty($count))
{
echo "<td style=\"border:1px solid;background:#CCC\">
<h2><a href=\"#\">".htmlspecialchars($row_parent['categoria'])."</a></h2>
</td>";
}else{
//Sino imprimimos las cat y sus subcat
echo "<td style=\"border:1px solid;background:#CCC\"><h2>". htmlspecialchars($row_parent['categoria'])."</h2>";
echo "<ul>";//Creamos la tabla para la subcategoria
while($row_child = $db->fetch_array($subcat))
{
echo "<li><a href=\"#\">". htmlspecialchars($row_child['subcategoria'])."</a></li>";
} //end while subcat
//Cerramos la tabla creada
echo "</ul>";
//cerramos la columna
echo "</td>";
} //end if
$i++;//Aumentamos la Bandera
//Imprimimos la nueva categoria en otra fila si ya hay mas de 2 columnas
//Se hace columna + 1 por que de esta forma siempre mantiene 2, sino se le agrega la cantidad de columnas se
//desconfigura, porque, nose preguntenle a él xDDDDD
if ($i==$columnas+1)
{
echo "</tr><tr>";//Imprimimos la nueva fila cerrando la actual
$i=1;//igualamos la bandera a 1 para la siguiente fila
}
}//end while cat
echo '
</tr>
</table>';
?>
De esta forma ya logramos lo que quieres..
El unico error era que cerraba el
</td> y antes de comenzar las subcategorias y por eso creaba error, era poner ese cierre despues de imprimir todo y ya sale..
salu2