Cómo crear un árbol jerárquico a partir de una tabla en mysql?
AUTOR PREGUNTA #1
-
¿Tienes la misma pregunta? Yo también
Esto también te interesa!
PREGUNTAS SIMILARES
#2
/* Descripcion de parametros $tabla = Nombre de la tabla en la DB $id = Nombre del campo llave de la tabla $categoria = Campo a mostrar en el arbol $idhijo= Campo que establece la relacion padre hijo $idpadre = categoria padre $prefix = string con un campo a mostrar en cada entrada del arbol */ function crearArbol($tabla,$id_field,$show_data,$link_field,$parent,$prefix){ /*Armar query*/ $sql='select * from '.$tabla.' where '.$idhijo.'='.$idpadre /*Asumiendo que se usa MySQL (se puede cambiar facilmente a otra db)*/ $rs=@mysql_query($sql); if($rs){ /*Recorrer todos las entradas */ while($arr=mysql_fetch_array($rs)){ /* Imprimir campo a mostrar*/ echo($prefix.$arr[$categoria].'<br>'); /* imprimir arbol the "hijos" de este elemento*/ crearArbol($tabla,$id,$categoria, $idhijo,$arr[$id],$prefix.$prefix); } } }
Ahora, asumiendo que se tiene una tabla con una estructura como la mencionada anteriormente se utilizaría así:
crearArbol('categoria','id','nombre','idpadre',0,'-');
Lo cual tendrá una salida como la siguiente
-categoria1
--subcateogria
-categoria3
--subcategoria
----subsubcategoria