Foros del Web » Programando para Internet » PHP »

Crear Un Menu Arbol Php Mysql Un Tabla Recursiva

Estas en el tema de Crear Un Menu Arbol Php Mysql Un Tabla Recursiva en el foro de PHP en Foros del Web. Buenas Por Fa Soy Nuevo En Esto Sime Puede Ayudar En Crear Un Meu Tipo Arbol Con Una Tabla Recursiva En Mysql Con Id E ...
  #1 (permalink)  
Antiguo 12/03/2008, 17:09
Avatar de PICOROFG  
Fecha de Ingreso: febrero-2008
Ubicación: Quito, Ecuador, Ecuador
Mensajes: 120
Antigüedad: 16 años, 9 meses
Puntos: 0
Crear Un Menu Arbol Php Mysql Un Tabla Recursiva

Buenas Por Fa Soy Nuevo En Esto Sime Puede Ayudar En Crear Un Meu Tipo Arbol Con Una Tabla Recursiva En Mysql Con Id E Id Parent Para Tres Campos

Codivpol Codivpolpad Nomdivpol Tipodivpol Codubi
01 0 Azuay Provincia Urbano
0101 01 Canton Cuenca Canton Urbano
010101 0101 Bellavista Parroquia Rural


Azuay
|_
Canton Cuenca
|_
Bellavista

Por Favor Alguien Me Puede Ayudar Es Para Un Proyecto Que Estoy Realizando Y Me Piden Esto
  #2 (permalink)  
Antiguo 28/04/2008, 05:09
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años
Puntos: 0
Re: Crear Un Menu Arbol Php Mysql Un Tabla Recursiva

amigo mio yo también busco el crear un menu en mysql y con gerarquia de arbol. lo que estoy seguro es que debe haber un padre_id y un hijo_id para la dependencia. a partir de aqui me toca trabajar :D


ciao ciao
  #3 (permalink)  
Antiguo 28/04/2008, 05:37
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Re: Crear Un Menu Arbol Php Mysql Un Tabla Recursiva

q tal esto? (hecho `on the fly`, puede tener errores :D )

Código PHP:
$sql="SELECT * FROM `menu`";
$consulta=mysql_query($sql,$link);
while(
$dato=mysql_fetch_array($consulta)) {
   
$menu[$datos['id_padre']].[$datos['id']]=$datos['nombre'];

Con esto obtendriais la `extructura` del menu. Solo faltaria listarlo. No sé si veis por donde van los tiros ^^

PD: es una sugerencia, seria con una tabla tipo
id | id_padre | nombre

que no hace falta id_hijo

id deberia ser autonumerico ^^

Explicación para mostrar el menu:
Si no tiene "padre", este id deberia ser 0 (al insertar en la base) con lo cual le diriais que está en la raiz
  #4 (permalink)  
Antiguo 28/04/2008, 05:58
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Re: Crear Un Menu Arbol Php Mysql Un Tabla Recursiva

Bueno, aquí lo teneis `completo`. Como decia, la tabla deberia ser de 3 campos (o lo adaptais vosotros) que serian id (autonumerico), id_padre(0 raiz, lo demas, depende del menu del que sean hijos), nombre(nombre del menu).

Y, aquí está el código:
Código PHP:
$sql="SELECT * FROM `menu`";
$consulta=mysql_query($sql,$link);
while(
$datos=mysql_fetch_array($consulta)) {
   
$menu[$datos['id_padre']][$datos['id']]=$datos['nombre'];
}  

foreach (
$menu[0] as $key => $value) {
    echo 
"<br>".$value."<br>";
        foreach (
$menu[$key] as $value) echo "&nbsp;&nbsp;&nbsp;".$value."<br>";
    } 
Espero que os sirva

Si teneis alguna duda / consulta, pasaré por aqui :)

Se puede optimizar haciendo una funcion recursiva, para que, ademas, acepte varios hijos....... pero eso si quereis, lo haceis vosotros :)
PD: sólo acepta 1 nivel....... no acepta "hijos de hijos"........
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 15:57.