Bonjour,
j'ai un problème que je comprends pas trop et j'ai jamais vraiment comprit.
C'est les fonctions récursives, visuellement mon array est remplie, mais la fonction qui le lance ne la pas ou pas en entier.

Voici la base de données qui sert a faire les jointures:
Nom : Capturephp.PNG
Affichages : 189
Taille : 60,3 Ko

Mon but c'est récupérer des nombres en bdd jusqu'à ce qu'il y en est plus.

Par exemple le nombre 9 est lié au nombre 4, le nombre 4 est lié au 1 et ainsi de suite et moi il me faut la liste sauf qu'un nombre peut en avoir plusieurs et il faut tout récupérer, le 9 est aussi lié au 6 par exemple. C'est un peut comme une arborescence de fichier/dossier en quelque sorte

J'ai vraiment du mal a comprendre comment on fait avec la récursivité quand il faut remplir un array, le résultat obtenu est souvent déroutant. Quand je boucle et que je log je vois mon array remplie, mais a l’endroit ou il y la fonction de lancer on voit qu’il y a que le premier niveau de l’array

Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
	function recipe_sql($recipe_id, $bdd)
	{
		$requete_sql = 'SELECT * FROM `recipe_group_link`
		LEFT JOIN recipes ON recipes.recipe_id = recipe_group_link.recipe_id
		LEFT JOIN recipes AS re1 ON re1.recipe_id = recipe_group_link.recipe_group_id
		WHERE recipes.recipe_id = :recipe_id';
		$stmt = $bdd->prepare($requete_sql);
		$stmt->execute(array(
			'recipe_id' => $recipe_id,
		));
		$stmt->setFetchMode(PDO::FETCH_ASSOC);
		$recipes =  $stmt->fetchAll();
		errorInfoSQL($stmt);
		return $recipes;
	}
 
	function recipes_recursive($recipe_id, $bdd, $array)
	{
		$recipe_sql = recipe_sql($recipe_id, $bdd);
		// krumo($recipe_sql);
 
		foreach($recipe_sql as $key => $value)
		{
			// krumo($value);
			echo '[ '.$value['recipe_id'].' '.$value['recipe_name'].' ] ';
			$array[] = $value;
			// krumo($array);
			recipes_recursive($value['recipe_id'], $bdd, $array);
			echo '<br>';
		}
		return $array;
	}
Visuellement la fonction fait le taff, mais pas avec le tableau. Pour le moment j'ajoute tout ce que la bdd donne avec la jointure, mais il faudrait que si je comprends comment faire que j'utilise que les nombre

Merci pour votre aide, car la je bloque