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

La verdad no entiendo la logica de como hacerlo y por ahora voy a hacer un json manual con el menu y despues vere.

Dejo bien mi codigo y mi db por si alguien me puede dar una mano con esto.

Tabla:
Código:
 menu___id           	menu_name         	menu_owner 
	
     1                          	Comercios                         	0
     2                          	Panaderias                    	1
     3 	                        Electrodomesticos          	1
     5                          	Electronica                    	3
     6                          	Hogar                              	3
     18                          	Medicos	                                0
PHP:
Código PHP:
    require('core/config.php');
    
    
$conn = new PDO('mysql:host='.$db['host'].';dbname='.$db['name'], $db['user'],$db['pass']);
    
    
$query "SELECT * FROM menus WHERE menu_owner=$menu_owner";
    
    
$menu $conn->prepare($query);
    
    
$menu->execute();
    
    
$rmenu = array();
    
    
$retorno $menu->fetchall(PDO::FETCH_OBJ);

    
$cant $menu->rowCount();
    
    
$resultados = array();
    
    
    foreach(
$retorno as $obj)
    {
        if(
$obj->menu_owner == '0')
        {
        
$resultados[$obj->menu___id]['id'] = $obj->menu___id;
        
$resultados[$obj->menu___id]['name'] = $obj->menu_name;
        }
    }
    
    unset(
$obj);    foreach($retorno as $obj)
    {
        if(
$obj->menu_owner != '0')
        {
            
$resultados[$obj->menu_owner]['id'] = $obj->menu___id;
            
$resultados[$obj->menu_owner]['name'] = $obj->menu_name;
        }
    }

    echo 
json_encode($resultados); 

Resultado:
Código:
{"1":{"id":"1","name":"Comercios"},"18":{"id":"18","name":"Medicos"}}

Como deseo que quede:
Código JSON:
Ver original
  1. [{"menu___id":"1","menu_name":"Comercios","Submenus":[{"menu___id":"2","menu_name":"Panaderias"},{"menu___id":"3","menu_name":"Electrodomesticos"},{"menu___id":"5","menu_name":"Electronica"},{"menu___id":"6","menu_name":"Hogar"}]},{"menu___id":"18","menu_name":"Medicos"}]

Última edición por ONahuelO; 09/07/2014 a las 18:31