IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Pb sur une récursivité


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Pb sur une récursivité
    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
    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;
    }
    L'affichage que j'obtiens sur le site est le suivant
    ---------------------------
    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

  2. #2
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Bonjour,

    et en mettant $clef en variable globale, ca ne fonctionne pas?
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Bonjour, essaye de transformer tes dernières lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	.....
            rechercheParentPlateRec($parentPlate,$idTube,$tab);
    	}
    	//return $toto;
    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            .....
            $toto = rechercheParentPlateRec($parentPlate,$idTube,$tab);
    	}
    	return $toto;

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup Fendal

    C'est exactement la solution !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récursivité avec introspection sur une classe
    Par Jb_One73 dans le forum Général Java
    Réponses: 13
    Dernier message: 17/12/2014, 15h22
  2. Récursivité sur une même table
    Par justinedr71 dans le forum Développement
    Réponses: 8
    Dernier message: 08/07/2010, 17h11
  3. Récursivité sur une liste
    Par shelzy01 dans le forum Pascal
    Réponses: 2
    Dernier message: 06/01/2008, 19h08
  4. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05
  5. Effet Fade In / Fade Out sur une surface DirectDraw
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 08/09/2002, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo