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 != 0 && 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