Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

consulta sql padre-hijos

Estas en el tema de consulta sql padre-hijos en el foro de Bases de Datos General en Foros del Web. Hola a todos, Estoy haciendo un menu dinamico y no se que consulta tengo que hacer. Os explico: Tengo una tabla en mysql compuesta por ...
  #1 (permalink)  
Antiguo 02/09/2009, 03:22
Avatar de Phoenix23  
Fecha de Ingreso: agosto-2007
Ubicación: 43.286211, -2.171349
Mensajes: 253
Antigüedad: 16 años, 8 meses
Puntos: 1
consulta sql padre-hijos

Hola a todos,

Estoy haciendo un menu dinamico y no se que consulta tengo que hacer. Os explico:

Tengo una tabla en mysql compuesta por id_familia, familia y padre.
por ejemplo pongo:

id_familia: 1
familia: Metal
padre: 0

id_familia: 2
familia: Plastico
padre: 0

id_familia: 3
familia: Acero
padre:1

id_familia: 4
familia:Aluminio
padre:1

id_familia: 5
familia:Plexiglas
padre:2

y asi pueden ser un monton de familias, subfamilias, sub-subfamilias ...

Mi pregunta es, como puedo hacer para llegar hasta el final, hasta encontrar al último hijo de un padre?

Gracias de antemano y saludos.
  #2 (permalink)  
Antiguo 02/09/2009, 07:16
Avatar de Phoenix23  
Fecha de Ingreso: agosto-2007
Ubicación: 43.286211, -2.171349
Mensajes: 253
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: consulta sql padre-hijos SOLUCIONADO

Hola a todos,

ya lo he solucionado, esta es la solucion:

Código PHP:
$sql="SELECT * FROM familia WHERE padre=0";
$res mysql_query($sql) or die (mysql_error());

while (
$filamysql_fetch_array($res)) {

    
$id_familia $fila['Idfamilia'];
    
$familia $fila['familia'];
        
    echo 
"Padre: " .$id_familia", " .$familia."<br>";
    
    
funcion_recursiva($id_familia);
}

function 
funcion_recursiva($id_familia){
    
    
$sql="SELECT * FROM familia WHERE padre=$id_familia";
    
$res mysql_query($sql) or die (mysql_error());
    
    while(
$fila mysql_fetch_array($res)){
    
        
$id_familia $fila['Idfamilia'];
        
$familia $fila['familia'];
        
$id_padre $fila['padre'];
        
        echo 
"Hijo: " .$id_familia", ".$familia."<br>";
        echo 
"Nodo del que dependo ".$id_padre."<br>";
    
        
funcion_recursiva($id_familia);
    }
    

Gracias por vuestro interes
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:35.