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);
?>