Al final nunca postie la solucion que encontre para mi problema, dejo aqui el codigo por si a alguien le gusta, para mi que aprendi en febrero de este año a intentar programar me dejo satisfecho esta forma.
He aqui el codigo:
Código PHP:
<?php
function generate_menu2($id_padre)
{ $conexion=mysql_connect("localhost","USUARIO","PASSWORD") or die("Problemas en la conexion");//CONECTO A LA BASE DE DATOS
mysql_select_db("BASE DE DATOS",$conexion) or die("Problemas en la selección de la base de datos");
$query=mysql_query("SELECT * FROM secciones",$conexion);
mysql_close($conexion);
while ( $row = mysql_fetch_assoc($query) )
{$menu_array[$row["id_categoria"]] = array("id_categoria" => $row["id_categoria"],"nombre_cat" => $row["nombre_cat"],"id_padre" => $row["id_padre"]);
}
foreach($menu_array as $key => $value)
{if ($value["id_padre"] == $id_padre)
{
if($id_padre == 0)
{echo $value['nombre_cat']."<br>";
generate_menu2($key);
}
else
{echo " - ". $value['nombre_cat']."<br>";
generate_menu2($key);
}
}
}
}
?>
<?php generate_menu2(0);?>
Y la tabla seria la siguiente:
Código:
CREATE TABLE IF NOT EXISTS `secciones` (
`id_categoria` int(10) NOT NULL auto_increment,
`nombre_cat` varchar(200) NOT NULL default '',
`id_padre` int(11) NOT NULL default '0',
PRIMARY KEY (`id_categoria`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ;
Ojo con las comillas del codigo de la table no estoy seguro que sean esas.
En el fondo lo simplifique al maximo dejandolo solo en una tabla y cuando quiero relacionarla con otra tabla, por ejemplo con la tabla productos, lo que hago es incluir dentro de la tabla productos, el campo id_categoria y asi hago la relacion, lugo el script del menu separa las categorias hijas de las padres.
Bueno si alguien puede mejorar el codigo o mostrar un codigo mas bk se le agradeceria y asi sigo aprendiendo, siempre pienso que en unos años mas me reire de las cosas que hago ahora, pero este es mi humilde avance.
Saludos