Bonjour,
j'ai un gros souci sur une fonction récursive, je n'arrive pas à lui faire renvoyer le resultat, alors qu'elle fonctionne très bien et que lorsqu'elle arrive dans la condition d'arrêt, elle a récupèré les informations que je cherche
L'affichage que j'obtiens sur le site est le suivant
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
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 function rechercheParentPlate($id) { $tab[0]=NULL; $tube=NULL; echo "ici"; $resultat=rechercheParentPlateRec($id,$tube,$tab); echo "resultat : ".$resultat."<br>"; } function rechercheParentPlateRec($var1,$tube1,$tab) { if(!empty($tube1)) { $req="SELECT idManip,dateManip FROM resultat WHERE idPlate=$var1"; $res=mysql_query($req); if(mysql_num_rows($res)>0) { while($ligne=mysql_fetch_assoc($res)) { extract($ligne); $tab["$idManip"]="$dateManip"; }//fin while }//fin if num_row>0 $toto[0]=$var1; $toto[1]=$tube1; $toto[2]=$tab; echo "valeur non null<br>"; echo "$var1<br>"; echo "$tube1<br>"; echo "************************************<br>"; foreach($tab as $clef=>$valeur) { echo $clef." ".$valeur."<br>"; } echo "---------------------------<br>"; return $toto; } else { $req="SELECT idManip,dateManip FROM resultat WHERE idPlate=$var1"; $res=mysql_query($req); if(mysql_num_rows($res)>0) { while($ligne=mysql_fetch_assoc($res)) { extract($ligne); $tab["$idManip"]="$dateManip"; }//fin while }//fin if num_row>0 $req1="SELECT idManip FROM create_plate WHERE idPlate=$var1"; $res1=mysql_query($req1); $ligne1=mysql_fetch_assoc($res1); extract($ligne1); $var2=$idManip; $req2="SELECT idManip, resultat.idPlate as parentPlate, idTube FROM resultat, plate WHERE resultat.idPlate=plate.idPlate AND idManip=$var2"; $res2=mysql_query($req2); $ligne2=mysql_fetch_assoc($res2); extract($ligne2); echo "---------------------------<br>"; foreach($tab as $clef=>$valeur) { echo $clef." ".$valeur."<br>"; } echo "---------------------------<br>"; rechercheParentPlateRec($parentPlate,$idTube,$tab); } //return $toto; }
---------------------------
0
---------------------------
---------------------------
0
11 2006-05-10
---------------------------
---------------------------
0
11 2006-05-10
10 2006-05-07
---------------------------
---------------------------
0
11 2006-05-10
10 2006-05-07
6 2006-08-05
---------------------------
valeur non null
254
1
************************************
0
11 2006-05-10
10 2006-05-07
6 2006-08-05
1 2006-05-04
---------------------------//là les valeurs sont correctes
//mais elles ne sont pas retournées par la fonction récursive
resultat :
IdParentPlate :
idTube :
Merci de votre aide
Partager