Salve ragazzi,

avrei una domanda. Ho una tabella 'sezioni' il cui campo 'madre' indica se una data sezione è una sotto-sezione di un'altra, e se sì il valore di questo campo è l'id di quest'ultima.

es:

ID | Madre | Titolo

1 | 0 | Prodotti
2 | 1 | Pasta lunga
3 | 2 | Spaghetti

Dovrei ora ricostruire tutto il percorso, a qualsiasi "profondità", quindi se sto in "Spaghetti" vorrei ottenere un array con gli ID delle sezioni anche superiori. Ho scritto questa funzione:

Codice PHP:
function recupero_principale($sezioni_storiche) {
    
        
// GET['s'] è l'ID della sezione corrente, ovvero "Spaghetti"
    
if(count($sezioni_storiche)==0$sezioni_storiche[]=$_GET['s'];

    
$result_sezione=mysql_query("SELECT madre FROM sezioni WHERE idsezione=".$sezioni_storiche[(count($sezioni_storiche)-1)]);
    
$row_sezione=mysql_fetch_array($result_sezione);

    
// Altrimenti passo alla sua funzione madre
    
if($row_sezione['madre']!=0) {

        
$sezioni_storiche[]=$row_sezione['madre'];
        
recupero_principale($sezioni_storiche);
    }    
    
//print_r($sezioni_storiche); print '
';
    return $sezioni_storiche;

Nel caso stia in "Prodotti" e "Pasta lunga" va, se sto in "Spaghetti" e decommento quel print_r mi restituisce:

Array ( [0] => 3 [1] => 2 [2] => 1 )
Array ( [0] => 3 [1] => 2 [2] => 1 )
Array ( [0] => 3 [1] => 2 )

Cosa può essere?
Grazie