Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/01/2012, 11:37
helacer
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 7 meses
Puntos: 50
Crear json con arbol de directorios

Buenas


Tengo un arbol de directorios en una tabla de la bd mysql... Esta tiene el id del directorio, el nombre y el id de su padre. Necesito generar un archivo json con esta estructura pero no lo e logrado. Cree una funcion recursiva y me recorre correctamente el directorio pero no logro qu me genere bien la estructura del mismo.


La clase NodoArbolDHTML es un ejemplo que vi en internet.

Dejo el codigo haber si identifican cual es mi error o son mis errores. Saludos y gracias

Código PHP:
<?
//creo una clase para generacion de los nodos del arbol.
class NodoArbolDHTML{
   var 
$id;
   var 
$title;
   var 
$hijos;
   
   function 
__construct($id,$title){
      
$this->id $id;
      
$this->title $title;
   }
   
   function 
anadirHijo($nodoHijo$id){   //añadir un hijo
      
if (!isset($this->hijos)){
         
$this->hijos = array();
      }
      
$this->hijos[$id] = $nodoHijo;
   }
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////// FUNCIONES GENERAN EL ARBOL ///////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class GenArbDirectorios
{
    
// Funcion que genera realmente la estructura del arbol - obtiene lso hijos.
    
function HijArbol($IdPadre,$CabArbol)
    {
          
// cargo los nodos padres.
          
$CarPadres mysql_query("SELECT id, padre,title FROM directorios ai WHERE ai.padre=".$IdPadre." ORDER BY ai.title ASC");
          
// recorro los nodos encontrados.
          
while ($InFile mysql_fetch_array($CarPadres))
          {
                
// Genero los nodos hijo.
                
$CabHijo = new NodoArbolDHTML($InFile['id'],$InFile['title']);
                
$CabArbol->anadirHijo($CabHijo"loquesea");
                
$this->HijArbol($InFile['id'],$CabHijo);
          }
          
// Limpio la consulta.
          
mysql_free_result($CarPadres);
          
// retorno el resultado
          
return $CabArbol;
    }
}
// Creo el nodo principal.
$RaiArbol = new NodoArbolDHTML(0,"Principal");
// Realizo el llamado a las funciones que generan del arbol.
$CreArbol = new GenArbDirectorios();
// LLAMO LA FUNCION
HijArbol(0,$RaiArbol);
?>

Última edición por helacer; 12/01/2012 a las 11:44