Cargando

Ir a contenido

X

Cómo crear un árbol jerárquico a partir de una tabla en mysql?





  AUTOR PREGUNTA

Publicado 20 marzo 2014 - 14:19
quero saber como creo un arbol jerarquico que me muestre un listado de categorias y subcategorias en forma jerarquica con php y mysql
  • ¿Tienes la misma pregunta? Yo también
  • Volver arriba


 

Publicado 20 marzo 2014 - 14:26
Para realizar un arbol jerarquico que despliegue las categorias y sus relaciones de una base de datos

/*
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

 

Publicado 20 marzo 2014 - 14:33
Esta solucion debes adaptarla a tu base de datos basicamente es indicar a cada categoria cual es la categoria padre o aquella de la cual depende


X