Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/06/2014, 18:22
Avatar de ONahuelO
ONahuelO
 
Fecha de Ingreso: junio-2009
Ubicación: Gualeguaychú, Argentina
Mensajes: 144
Antigüedad: 14 años, 10 meses
Puntos: 4
Menus de ilimitados subniveles

Hola buen dia, me encuentro trabado en un problema y es que necesito hacer un menu que tenga ilimitados submenus y que estos tambien tengan ilimitados menus.

Ejemplo:

Menu principal
SubMenu
SubMenu
Menu del Submenu
Submenu
Menu del Submenu
Otro Submenu


Osea la idea es que tampoco sean estaticos sino que tambien se puedan insertar y eliminar.

Yo tengo algo hecho pero solo logro hacer submenus.

Aca esta mi codigo:
Código PHP:
$conn = new PDO('mysql:host='.$db['host'].';dbname='.$db['name'], $db['user'],$db['pass']);
    
    
$query "SELECT * FROM menus WHERE menu_owner=0";
    
    
$menu $conn->prepare($query);
    
    
$menu->execute();
    
    
$retorno $menu->fetchall(PDO::FETCH_OBJ);
    
    foreach(
$retorno as $obj)
    {
        
$querya "SELECT * FROM menus WHERE menu_owner=".$obj->menu___id;
        
        
$smenu $conn->prepare($querya);
        
        
$smenu->execute();
        
        
$sretorno $smenu->fetchall(PDO::FETCH_OBJ);
        
        
$obj->menu_sub $sretorno;
        
    }
    
    echo 
json_encode($obj); 
Esta es mi DB
Código:
 menu___id  	menu_name 	menu_owner 	
1 	Comercios	0
2 	Panaderias	1
3 	Electrodomesticos	1
5 	Electronica	3
6 	Hogar	3

Y este es el resultado:
Código:
{"menu___id":"1","menu_name":"Comercios","menu_owner":"0","menu_sub":[{"menu___id":"2","menu_name":"Panaderias","menu_owner":"1"},{"menu___id":"3","menu_name":"Electrodomesticos","menu_owner":"1"}]}

Osea mi idea es hacer una consulta general y hacer una sub consulta por cada submenu pero solo logro hacerla de un nivel.

Creo que tambien deveria una manera de hacerlo solo con SQL pero cualquier forma que pueda hacerlo me serviria.

Muchas Gracias