Bonjour,
Je vous sollicite pour la mise en place d'une fonction récursive.
Je n'arrive pas à la mettre en place.
J'ai un tableau qui liste les tables d'une base de données, et des sous-tableaux associés qui contiennent qui contiennent la clé étrangère de la table parente :
Exemple :
ARRAY([TABLE1] => ARRAY([0] => TABLE3 [1] => TABLE4) [TABLE3] => ARRAY([0] => TABLE2 [1] => TABLE5)) ...
Le but de ma fonction récursive est de trouver le meilleur chemin pour arrive d'une table X à une table Z.
La finalité : pouvoir constituer automatiquement les jointures entre table pour mettre en place une requête dynamique.
Voici la fonction mise en place :
Cette fonction me retourne bien des données mais cela ne correspond pas à mon chemin optimal.
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 print_r(test($tables,"SLE_L1")); FUNCTION test($tables,$element){ $return = ARRAY(); IF($element == "MAIS_STOCK_S1"){ RETURN $return; } ELSE{ IF(ISSET($tables[$element])){ FOREACH($tables[$element] AS $enfant){ //ECHO $element." //// "; //print_r($enfant); ECHO "</br>"; $return[$element][] = $enfant; $return = ARRAY_MERGE(test($tables,$enfant),$return); } } RETURN $return; } }
Je demande votre aide donc, si vous avez besoin d'information complémentaire n'hésitez pas !
Cordialement
Partager