Mogge allemaal,
Ik wil een recursieve functie maken om alle moeder id's in op te slaan wanneer er een kind wordt geselecteerd in een menu. Maar ik krijg alleen een gevult array terug wanneer de functie binnen selectedIds niet opnieuw wordt aangeroepen (selected id is dus van hoofdmenu..).

Ik kan het wel oplossen met een SESSION, maar moet volgens mij ook anders kunnen ?

<?php
//get selected ids 
function selectedIds($id, $id_array = array()) {
	$sql = mysql_query("SELECT * FROM cms_menu WHERE id = '".$id."' ");
	$result = mysql_fetch_array($sql);

	$id_array[] = $result['id'];
	
	if($result['parent_id']!="0") {
		selectedIds($result['parent_id'] ,$id_array);
	}
	//finished
	else {
		return $id_array;
	}
}

$sel_id = 7;
$array = selectedIds($sel_id);

//print_r($_SESSION['test']);
print_r($array );  // deze is dus alleen gevult wanneer hoofdmenu is geselecteerd..
?>

Je verwerkt de ids niet als je de functie aanroept, (je doet niks met de return; regel 9).
oeps, het moet dus worden:

return selectedIds($result['parent_id'] ,$id_array);

Thnx!

Reageren