Accueil > Forum > > > > Help, fonction pour transmettre une variable créer a l'issu d'une boucle
Help, fonction pour transmettre une variable créer a l'issu d'une boucle
mercredi 19 mars 2008 à 15:05:15 |
Help, fonction pour transmettre une variable créer a l'issu d'une boucle

romega
|
Salut a vous, Alors je continu dans la création de mon forum, voila un nouveau probleme pour moi. D'abord le code ce sera plus simple : function selectcat($id2,$st=array(),$rs="") { $qnm=mysql_query("SELECT id, id_parent FROM arbo WHERE id_parent='$id2'"); while($res3=mysql_fetch_array($qnm)) { array_push($st,''.$res3['id'].''); selectcat($res3['id']); } $i=0; while ($i<sizeof($st)) { $rs.= " OR cate=$st[$i] "; $i++; } echo $rs; return $rs; } Supposons que j'ai 3 catégories le echo va me marquer "OR cate=1 OR cate=2 OR cate=3" il le fait trés bien. Le probleme est que le echo est la juste pour controlé que la boucle fonctionne bien. Le but est de récupéré cette valeur $rs dans le reste du script et la quand je fait "echo selectcat(...);" il me marque seuleument "OR cate=3" et zap les premier passage de la boucle pourquoi et comment résoudre ce problème  Merci a vous  PS:j'espere que j'ai bien indenter mon code...
|
|
mercredi 19 mars 2008 à 16:49:48 |
Re : Help, fonction pour transmettre une variable créer a l'issu d'une boucle

amezghal
|
Réponse acceptée !
salut, ba dans ta premiere boucle while {} tu fais appelle a la meme fonction (récursivité) normal que tu recuperes que les derniers valeurs... solutions => tes variables $st ,$rs doivent etre declarées en dehors de la fonction..
Au début, on essaye de trouver une solution qui marche, et puis on veut la meilleure.
|
|
mercredi 19 mars 2008 à 17:25:28 |
Re : Help, fonction pour transmettre une variable créer a l'issu d'une boucle

romega
|
J'ai essayé de les déclarer en dehors de la fonction, mais elle ne sont pas reconnues dans la fonction après. J'ai essayé avec global mais du coup la variable est remise a sa valeur initial. Si tu pouvais m'indiquer aussi le code ou comment déclaré a l'exterieur de la variable pour ensuite récupé le résultat de ma boucle, désolé je suis un peu perdu avec cette fonction. Merci
|
|
mercredi 19 mars 2008 à 19:50:01 |
Re : Help, fonction pour transmettre une variable créer a l'issu d'une boucle

amezghal
|
salut, declare tes var en dehors de la fonction, ta fonction n'aura comme param que $id2 donc function selectcat($id2){....}
Au début, on essaye de trouver une solution qui marche, et puis on veut la meilleure.
|
|
mercredi 19 mars 2008 à 20:12:46 |
Re : Help, fonction pour transmettre une variable créer a l'issu d'une boucle

malalam
|
Hello,
non. La solution serait de déclarer tes variables en statique. Exemple à la con : <?php function recurse($sChaine) { static $aRes = array(); $iLength = strlen($sChaine); if(!empty($iLength)) { $aRes[] = substr($sChaine, 0, 1); recurse(substr($sChaine, 1)); } return $aRes; } print_r(recurse('hello')); ?>
Et parce que ce soir je suis d'humeur sympa ;-) : <?php function selectcat($id2) { static $rs = ''; static $st = array(); $qnm=mysql_query("SELECT id, id_parent FROM arbo WHERE id_parent='$id2'"); while($res3=mysql_fetch_array($qnm)) { array_push($st,''.$res3['id'].''); selectcat($res3['id']); } $i=0; while ($i<sizeof($st)) { $rs.= " OR cate=$st[$i] "; $i++; } echo $rs; return $rs; } ?>
|
|
mercredi 19 mars 2008 à 20:13:22 |
Re : Help, fonction pour transmettre une variable créer a l'issu d'une boucle
|
mercredi 19 mars 2008 à 20:18:41 |
Re : Help, fonction pour transmettre une variable créer a l'issu d'une boucle

malalam
|
Quand même... si tu utilises mysql_fetch_array(), et que tu ne te sers que des index associatifs, utilise la constante MYSQL_FETCH_ASSOC avec. Ne mets pas non plus ton sizeof() dans le while(). Initialise une variable avant la boucle, qui a pour valeur ton sizeof(), et sers-toi de cette variable dans la boucle.
|
|
mercredi 19 mars 2008 à 20:20:05 |
Re : Help, fonction pour transmettre une variable créer a l'issu d'une boucle

malalam
|
Qu'est-ce qui ne marche pas ?
|
|
mercredi 19 mars 2008 à 21:03:52 |
Re : Help, fonction pour transmettre une variable créer a l'issu d'une boucle

romega
|
En fait ca marche pas totalement avec static, car je me sers deux fois de la fonction et a la deuxieme utilisation il me ressort les résultat de la premiere utilisation plus ceux de la deuxieme. Il faudrait remettre a zero les variables statique pour la deuxieme utilisation ? Merci pour votre aide 
|
|
jeudi 20 mars 2008 à 08:22:10 |
Re : Help, fonction pour transmettre une variable créer a l'issu d'une boucle

malalam
|
Bah dans ce cas :
function selectcat($id2,$st=array(),$rs="") { $qnm=mysql_query("SELECT id, id_parent FROM arbo WHERE id_parent='$id2'"); while($res3=mysql_fetch_array($qnm)) { array_push($st,''.$res3['id'].''); selectcat($res3['id'], $st, $rs); } $i=0; while ($i<sizeof($st)) { $rs.= " OR cate=$st[$i] "; $i++; } echo $rs; return $rs; }
Néanmoins tu sais que ton code est à priori foireux ? Je ne pense pas que ton mysql_fetch_array() reprenne le fil après la sortie d'un nouvel appel récursif à ta fonction. C'est à vérifier, mais je pense que ta ressource est écrasée par la suivante (au sein de la mémoire de php).
|
|
Cette discussion est classée dans : boucle, rs, id, echo, cate
Répondre à ce message
Sujets en rapport avec ce message
Concaténation de nom de variables ! [ par fil ]
Concaténation de nom de variables !bonjour j'ai un petit problème je voudrais creer des noms de variable dynamiquement dans une boucle :J'ai des varia
debutant probleme de session! [ par jimmy69 ]
bonjour a tous,voila je debute en php et je suis en train de realiser un espace menbresou ceux ci peuvent poster des news un truc tout simple!j'ai don
TRansfert fichier FTP [ par floceam ]
J'ai un soucis ! Help !Voila, je fait un site, et je veux pouvoir telecharger les fichiers sur mon serveur par simple envoir de formulaire!Or, il se p
espace membre en PHP [ par silendus ]
je vais essayé d'être clair :)Donc je suis en train de faire un site en PHP avec gestion de membres.le problème que je rencontre est le suivant: je n'
problème de session [ par guendouf ]
Bonjour,je poste 2 scripts, j'aimerai qu'on m'aide et qu'on m'explique pourquoi j'arrive pas à me connecter:1)session.php// On inclut le fichier de co
Souci dans mon tableau [ par slhuilli ]
Bonjour,je cherche la faille dans ce bout de code depuis p$ls jours sans trouver. Qu'elqu'un pourra peut être maider et m'expliquer . En fait, je n
MySQL id? [ par Linuss ]
Bonjour à tous, Voilà, lorsque j'essaie de faire un lien qui contient l'id (qui existe au ca sou quelqu'un poserait la question :) d'un tuto, je n'y a
get(id) from MySQL ? [ par Linuss ]
Bonjour à tous, Lorsque j'essai d'afficher un tuto (bah oui dans ce cas là c'est un tutoriel :) la page n'afficher rien du tout. En fait pour afficher
lien sur un bouton [ par troupe_a_jule ]
julesalut c'est encore qui vient t'embéterj'ai encore un petit problème si tu pourrait m'aider ce serait trop sympaen faite je veut mettre un lien sur
Petit problème surmontable insurmonté [ par dcbastien ]
Voici ce que j'ai mis au point qui est quelque chose de très simple:if( isset( $_GET['action'] ) ){ $action = $_GET['action'];}else $action = "";switc
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|