insomma, parliamone... i livelli dell'albero immagino sia finiti, visto che per ogni livello fai una query ad una tabella diversa... quindi iniziamo dalla geografia: come facciamo a capire dove ci troviamo?

nel senso, da quel che ho capito è un menu del tipo AZIENDA->REPARTO->IMPIEGATO->MAGARI_ALTRO

come sai, quando clicchi su magari_altro, la path che hai fatto? Cioè immagino che ogni click sia un caricamento della pagina, o è via ajax? immaginiamo di avere tipo $_GET['azienda_id'], $_GET['reparto_id'], $_GET['impiegato_id'] e $_GET['magari_altro_id'] ?

in quest'ultimo caso, avresti uno script del tipo:

codice:

$aziende = carico_tutte_le_aziende

while ( $azienda in $aziende)
{
     print link azienda;
     if($azienda['id'] == $_GET['azienda_id']){
          $reparti = carico_tutti_i_reparti_dell'azienda_selezionata

          while($reparto in $reparti){
                  print link reparto;

                  if($reparto['id'] == $_GET['reparto_id']){
                      //etc etc etc
                  }

          }

     }

}