Se puede hacer fácilmente si trabajas con recursividad.
Tienes que crear una función que entre dentro de ella misma.
Por ejemplo:
Código PHP:
//En tu código, buscas la raíz del árbol y se la pasas a la función MostrarArbol();
$link=conexion_bbdd();
$consulta=mysql_query("SELECT info FROM arbol WHERE id=1", $link); // Me invento las consultas, eso ya hazlo tú bien como esté en tu BBDD
$resultado=mysql_fetch_row($consulta);
$padreRaiz=$resultado[0];
MostrarArbol($padreRaiz,$link);
// Función para mostrar
function MostrarArbol($raiz,$link){
$consulta=mysql_query("SELECT hijos FROM arbol WHERE Nombre_completo='".$raiz."' ");
while($resultado=mysql_fetch_row($consulta)){
// Tiene hijos
MostrarArbol($resultado[0],$link);
echo "Nombre_completo: ".$raiz."<br>"
}
if(!$resultado){
// No tiene hijos
echo "Nombre_completo: ".$raiz."<br>";
}
return 1;
}
Creo que sería algo así, lo he puesto sin probar, igual hay algún error. A ver, como no sé tu estructura de tablas de la BBDD no sé bien como tendrás que hacerlo, pero tómalo como ejemplo y peléate un poco. Tal como está, mostraría primero el hijo de abajo del todo, luego su hermano, luego su otro hermano, luego su padre, luego los tíos, luego sus primos (hijos de cada tío), luego los abuelos... hasta llegar arriba del todo.
A partir de aquí, sólo con que juegues un poco en poner el printado de información antes o después, ya conseguirás cambiar el orden. Por ejemplo si lo pones antes de entrar recursivamente otra vez, harás que vaya de arriba a abajo en vez de abajo a arriba.
Espero que más o menos te haya servido de ayuda.