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=3 //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?