altrimenti potresti fare tutto con una query e lavorando di più di php, del tipo
Codice PHP:
$sql = 'SELECT FROM `tabella` WHERE';
$res = mysql_query($sql);
$rows = array();
$parents = array();
while($row = mysql_fetch_assoc($res)){
$rows[] = $row;
if(!is_array($row['cat_parent_id'])) $row['cat_parent_id'] = array();
array_push($parents[$row['cat_parent_id']],$row['id_categorie']);
}
quindi useresti ancora una ricorsione per scorrere l'albero, sta volta però senza interrogare il db
Codice PHP:
function print_level($parent = 0){
global $rows;
global $parents;
if(is_array($parents[$parent] && !empty($parents[$parent]))){
foreach($parents[$parent] as $el){
// agisco sull'elemento del livello corrente
// controllo se ha figli
if(is_array($parents[$el] && !empty($parents[$el]))){
print_level($el);
}
}
}
}
print_level();