Grazie per la risposta, ma alla fine ho risolto cosi'
Questa la select, leggermente complicata dall'aggiunta di una tabella di relazione per estrarre il padre principale
Codice PHP:
SELECT g1.cod_grupo AS lev1,
g1.nombre_grupo AS lev1_name,
g2.cod_grupo as lev2,
g2.nombre_grupo AS lev2_name,
g3.cod_grupo as lev3,
g3.nombre_grupo AS lev3_name,
g4.cod_grupo as lev4,
g4.nombre_grupo AS lev4_name,
g5.cod_grupo as lev5,
g5.nombre_grupo AS lev5_name
FROM dp_grupos AS g1
LEFT JOIN dp_grupos AS g2 ON g2.cod_grupo_padre = g1.cod_grupo AND g2.activo='$iFlagActivo'
LEFT JOIN dp_grupos AS g3 ON g3.cod_grupo_padre = g2.cod_grupo AND g3.activo='$iFlagActivo'
LEFT JOIN dp_grupos AS g4 ON g4.cod_grupo_padre = g3.cod_grupo AND g4.activo='$iFlagActivo'
LEFT JOIN dp_grupos AS g5 ON g5.cod_grupo_padre = g4.cod_grupo AND g5.activo='$iFlagActivo'
WHERE g1.cod_grupo = (select cod_grupo
FROM dp_grupos_usuarios
WHERE cod_usuario='$id'
and defecto=1)
Questa select mi restituisce n-record, dove i campi sono i livelli eventualmente popolati. La profondita' massima e' fissata a 5.
Quindi gli elementi risultanti dell'array sono di questo tipo,
Codice PHP:
ListaArray
(
[0] => Array
(
[lev1] => 5534
[lev1_name] => GRUPO PADRE
[lev2] => 5535
[lev2_name] => SEGRETARIA GENERALE
[lev3] => 5536
[lev3_name] => GABINETTO DEL
[lev4] => 5541
[lev4_name] => UNITA 3
[lev5] =>
[lev5_name] =>
)
[1] => Array
(
[lev1] => 5534
[lev1_name] => GRUPO PADRE
[lev2] => 5535
[lev2_name] => SECRETARIA GENERAL DE
[lev3] => 5538
[lev3_name] => UNITA 2
[lev4] => 5593
[lev4_name] => PRIMO OSPEDALE
[lev5] =>
[lev5_name] =>
)
[2] => Array
(
[lev1] => 5534
[lev1_name] => GRUPO PADRE
[lev2] => 5535
[lev2_name] => SECRETARIA GENERAL DE
[lev3] => 5538
[lev3_name] => UNIDAD 2
[lev4] => 5594
[lev4_name] => SECONDO OSPEDALE
[lev5] =>
[lev5_name] =>
)
[3] => Array
(
[lev1] => 5534
[lev1_name] => GRUPO PADRE
[lev2] => 5596
[lev2_name] => SEGRETERIA 2
[lev3] =>
[lev3_name] =>
[lev4] =>
[lev4_name] =>
[lev5] =>
[lev5_name] =>
)
etcc....
E poi utilizzando variabili temp per ogni livello, mi scrivo ogni record in una tabella html (questa parte puo' essere chiaramente applicata ad un JS apposito)
Ci sara' sicuramente un modo migliore per estrarre i dati ma per il momento pare, dai primi test, funzionare.