Ver Mensaje Individual
  #8 (permalink)  
Antiguo 09/03/2010, 10:39
Narachamus
 
Fecha de Ingreso: febrero-2003
Mensajes: 39
Antigüedad: 21 años, 2 meses
Puntos: 1
Pregunta Respuesta: jugando con bucles

Gracias a ambos. Problemillas que he visto:

Chulosoy, probé el código y funciona, pero sólo llega a 2 niveles del árbol, yo quiero algo que lo haga sin limitaciones.

JessicaTJ, no entiendo , puedes poner un caso práctico, por básico que sea, donde aplicar esa sentencia y mostrar resultados?

Se me ocurrió una forma para sacar todos los registros como quiero, pero tiene el problema de que no sé como formatearlo para que parezca un árbol, y me da que es un poco chapucero en general:

Código PHP:
$idpadre=//el id del que quiero que salgan todos sus subempresas
                    
function buscar($idpadre){
    
$sql=mysql_query("SELECT id,empresa,id_padre FROM x_arbol WHERE id_padre=".$idpadre);
    while(
$filas=mysql_fetch_array($sql)){
        echo 
$filas["id_padre"]."-".$filas["empresa"]."<br>";
        
$idpadre=$filas["id"];
        
buscar($idpadre);
                            
    }
}
buscar($idpadre); 
Si tengo (ahora en vez de empresas, que es un poco confuso, uso de ejemplo un árbol geneálogico).

Id:1 - (Padre) Juan
Id:2 - (Madre) Pepa
Id:3 - (Hijo) Luis - Id_padre:1
Id:4 - (Nieta) Jeny - Id_padre:3
Id:5 - (Nieta) Jesy - Id_padre:3
Id:6 - (Hija) Luisa - Id_padre:1
Id:7 - (Bisnieta) Loli - Id_padre:4

Lo que sale con ese código es:

1- Luis
3- Jeny
4- Loli
3- Jeny
1- Luisa

Básicamente hace lo correcto, pero no sé como tabular los resultados por id_padre, pa que no queden tan en lista.
Y si se os ocurre una forma de hacerlo menos chapucera, os lo agradecería muchísimo, saludos.

EDITO: Si, está todo en la misma tabla, la estrctura es:

id INT(11) Autonumerico PK
empresa VARCHAR (255)
id_padre INT (11)

¿me recomendais hacerlo de otra forma?