Ciao a tutti!
Eccomi di nuovo a chiedere aiuto..
Sto costruendo una funzione che va a prendere i dati da una tabella di categorie così strutturata:
ric_cat_id.sup_cat_id.nome
1.................0..........cat1
2.................1..........cat2
3.................1..........cat3
l'ordine uscente dovrebbe essere questo:
livello1->cat1
livello2->cat2..cat3
la funzione è:
Codice PHP:
function menu($cat_id = 0, $menu = array())
{
$construct_query = fun_db_query ("select ric_cat_id, sup_cat_id, name
from " . TABLE_RICETTE_CAT . "
where ric_cat_id = '" . $cat_id . "'
order by v_order");
while ($construct = fun_db_fetch_array ($construct_query))
{
$construct_query2 = fun_db_query ("select ric_cat_id, sup_cat_id, name
from " . TABLE_RICETTE_CAT . "
where sup_cat_id = '" . $construct['sup_cat_id'] . "'
order by v_order");
while ($construct2 = fun_db_fetch_array ($construct_query2))
{
$sup_cat = $construct2['sup_cat_id'];
$menu_new[$sup_cat] .= $construct2['ric_cat_id'];
}
$menu = array_merge((array)$menu_new, (array)$menu);
menu($sup_cat, $menu);
}
return $menu;
}
con print_r all'interno della funzione l'output è il seguente:
Array ( [0] => 23 ) (primo giro)
Array ( [0] => 1 [1] => 23 ) (secondo giro, aggiunge categoria superiore e si ferma)
quindi sembra che la costruisca correttamente MA con questo richiamo:
Codice PHP:
//visualizzo il menu delle ricette
(isset($_GET['cat_id']) && fun_not_null($_GET['cat_id']) && is_numeric($_GET['cat_id'])) ? $cat_id = $_GET['cat_id'] : $cat_id = '0';
$menu = array(menu($cat_id));
print_r($menu);
l'output è il seguente:
Array ( [0] => Array ( [0] => 23 ) )
qualcuno mi sa aiutare a capire cosa succede? ci sbatto la testa da ieri , ho l'impressione che sia una cosa semplicissima ma non capisco dove sbaglio.
GRAZIE!!!