mm Pues una cosa es Ordenar o agrupar .. eso sería taréa de SQL (GROUP BY .. ORDEN By ... etc)
Pero el "efecto" visual de que esos datos queden con una estructura de arbol .. podrías usar técnicas de "nodos" y cosas así al estilo XML ..
Revisa en phpclasses.org
http://promoxy.mirrors.phpclasses.or...ee&go_search=1
Por ahí (buscando por 'tree' ) veras más de una aplicación para generar esas ramas y sub-ramas de tu arbol .. Tal vez te pidan un array (multidimiensional) y no lo hagan directamente desde tus consultas SQL .. pero bueno, decidete por alguna de estas classes y luego veremos como adaptarlo a tu consulta SQL que debes generar ...
Un saludo,