Salve,
ho la data funzione per stampare a video le categorie e le varie sotto categorie.

Il database è strutturato in questa maniera
codice:
Tabella "categorie"
id_cat
id_parent
name
Per richiamare i dati e ordinarli secondo le varie sotto categorie ho la seguente funzione
Codice PHP:
function FamilyTree($id$list) {
        
$output '';
        
$cat_id $id;
        
$arr = array();
            
        while(
$id != && strlen($id) > 0) {
            
$arr[] = $id;
            
$id $list[$id]['parent'];
        }
        
        for(
$i count($arr) -1$i >= 0$i--) {
            
$cat $list[$arr[$i]];
            
$output .= $cat['name'];
            if(
$i 0) {
                
$output .= ' - ';
            }
        }
        return array(
'name' => $output'cat_id' => $cat_id);
    }
    function 
GetCategories() {
        
$conn = new Connection;
        
$result $conn->query("SELECT * FROM categorie ORDER BY cat_id");
        
$categories = array();
        while(
$row $conn->fetch_array($result)) {
            
$categories[$row['cat_id']] = array (
                
'id' => $row['cat_id'],
                
'name' => $row['name'],
                
'parent' => $row['parent_id']
            );
        }
        
$conn->close();
        return 
$categories;
    } 
Che richiamo in questa maniera
Codice PHP:
$conn = new Connection;
$result $conn->query("SELECT * FROM categorie ORDER BY cat_id");
$cat = array();
while(
$row $conn->fetch_array($result)) {
    
$cat[] = $category->FamilyTree($row['cat_id'],$category->GetCategories());
}
sort($cat);
for(
$i=0;$i<count($cat);$i++) {
    echo 
$cat[$i]['name'].'
'
;

Il risultato è il seguente

codice:
Categoria 1
Categoria 1 - Sotto-categoria 1
Categoria 2
Categoria 3
Categoria 3 - Sotto-categoria 3
Categoria 3 - Sotto-categoria 3 - Sotto-sotto-categoria 3
Come vedete mi stampa a video tutto il percorso, io vorrei che mi ricreasse una struttura ad albero indentata ma senza tutto il percorso... qualcosa di simile a
codice:
Categoria 1
 - Sotto-categoria 1
Categoria 2
Categoria 3
 - Sotto-categoria 3
  - Sotto-sotto-categoria 3
Probabilmente penso ci sia da aggiungere anche un campo per l'ordinamento nel database.. correggetemi se sbaglio e PF aiutatemi a risolvere questo mio problema
Grazie 1000