Optimisation fonction sur les branches
Bonjour, Bonjour,
Comment allez vous ?
Les vacances ont été bonnes ?
Je viens vers vous car je suis a la recherche de brillants esprits afin de me débloquer dans mon problème. Je vais déjà donner le contexte.
je suis dans un esprit d'arbre, de branches, et de feuilles, c'est a dire une arborescence, avec des éléments qui ont des enfants, qui ont eux même des enfants et ainsi de suite.
Bon j'ai donc une table ou sont stocké tout les éléments seul le champs 'id_parent' affirme le lien de parenté, comme ceci :
Code:
1 2 3 4 5 6
| CREATE TABLE `mc_tree_right` (
`id_treeRight` int(11) NOT NULL AUTO_INCREMENT,
`Libel_right` varchar(45) DEFAULT NULL,
`id_parent` int(11) DEFAULT NULL,
PRIMARY KEY (`id_treeRight`)
) |
bon pour le moment mon code fonctionne et répond a 3 générations, mais je voudrais qu'il soit autonome peut importe le nombre de générations, que je n'ai pas a coder chaque génération a la main. Vous allez voir.
Code:
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| //retourne un tableau des données de tout les enfants
function all_data_child($idSheet){
//pour la portabilité de la connexion car je ne suis pas en POO
global $bdd;
//retourne un tablau de donnée de la feuille courante PDO::FETCH_ASSOC
$a_dataSheet = get_data($idSheet);
$a_dataAllChild = $a_dataSheet[0];
//récupere dans un tableau toute les données des enfants direct
$a_dataChild = data_child_sheet();
$i = 0;
foreach($a_dataChild as $key => $value){
foreach($value as $cle => $donnee){
// on l'ajoute dans un tableau général
$a_dataAllChild['child'.$i][$cle] = $donnee ;
}
//on test si il existe des enfants pour chaque enfant que l'on traite et on recommence
if(exist_child($value['id_treeRight'])==true){
$j = 0;
$a_dataGrandChild = data_child_sheet($value['id_treeRight']);
foreach($a_dataGrandChild as $chaussette => $cravatte){
foreach($cravatte as $letter => $world){
$a_dataAllChild['child'.$i]['grandChild'.$j][$letter] = $world ;
}
//on recommence
if(exist_child($cravatte['id_treeRight'])==true){
$k = 0;
$a_dataGreatGrandChild = data_child_sheet($cravatte['id_treeRight']);
foreach($a_dataGreatGrandChild as $paper => $pen){
foreach($pen as $fruit => $legume){
$a_dataAllChild['child'.$i]['grandChild'.$j]['greatGrandChild'.$k][$fruit] = $legume ;
}
//on recommence
if(exist_child($pen['id_treeRight'])==true){
$n = 0;
$a_dataGreatGreatGrandChild = data_child_sheet($pen['id_treeRight']);
foreach($a_dataGreatGreatGrandChild as $essence => $diesel){
foreach($diesel as $whisky => $vodka){
$a_dataAllChild['child'.$i]['grandChild'.$j]['greatGrandChild'.$k]['greatGreatGrandChild'.$n][$whisky] = $vodka ;
}
$n++;
}
}
$k++;
}
}
$j++;
}
}
$i++;
}
return $a_dataAllChild;
} |
Pour le moment je tourne en rond, peut être auriez vous une brillante idée ?
je précise que je ne suis pas en POO mais que j'utilise des fonctions internes sous PDO.