[PHP] Fonction récursive dans une boucle
Fermé
Dédé86
Messages postés
682
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2017
-
15 mars 2009 à 15:59
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 15 mars 2009 à 17:45
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 15 mars 2009 à 17:45
A voir également:
- [PHP] Fonction récursive dans une boucle
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction moyenne excel - Guide
- Fonction remplacer dans word - Guide
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Excel
3 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
15 mars 2009 à 17:34
15 mars 2009 à 17:34
<?php function display_children($parent, $level) { //Affichage de tous les dossiers de niveau N $result = mysql_query("SELECT * FROM arborescence WHERE parentDossier='$parent'"); while ($row = mysql_fetch_array($result)) { $levelSousDossier = $level+1; echo str_repeat(' ',$levelSousDossier);?> <img src="images/icones/dossier.jpg"><a name="<?php echo $row['idDossier'];?>" href="mesdocuments.php?idDossier=<?php echo $row['idDossier'];?>"> <?php echo $row['nomDossier'].'<br>'; display_children($row['idDossier'], $level+1); } ? <?php } ?> premier passage de boucle la requette met les réponses du niv1 dans la ressource $result mais dans la boucle while comme tu rappelle la fonction display_children tu reexecutes la requette sur le niveau 2 ce qui fiat que les réponses viennent écraser £result, essayes un truc dans ce genre pour avoir une ressource différente par chaque boucle (j'ai pas tésté) <?php $i=0; function display_children($parent, $level) { //Affichage de tous les dossiers de niveau N ${'result'.$i} = mysql_query("SELECT * FROM arborescence WHERE parentDossier='$parent'"); while ($row = mysql_fetch_array(${'result'.$i})) { $levelSousDossier = $level+1; echo str_repeat(' ',$levelSousDossier); ?> <img src="images/icones/dossier.jpg"><a name="<?php echo $row['idDossier'];?>" href="mesdocuments.php?idDossier=<?php echo $row['idDossier'];?>"> <?php echo $row['nomDossier'].'<br>'; display_children($row['idDossier'], $level+1); } $i++; }
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
15 mars 2009 à 17:45
15 mars 2009 à 17:45
Après réflexion ce serait plutôt comme ça:
<?php function display_children($parent, $level) { //Affichage de tous les dossiers de niveau N ${'result'.$level} = mysql_query("SELECT * FROM arborescence WHERE parentDossier='$parent'"); while ($row = mysql_fetch_array(${'result'.$level})) { $levelSousDossier = $level+1; echo str_repeat(' ',$levelSousDossier); ?> <img src="images/icones/dossier.jpg"><a name="<?php echo $row['idDossier'];?>" href="mesdocuments.php?idDossier=<?php echo $row['idDossier'];?>"> <?php echo $row['nomDossier'].'<br>'; display_children($row['idDossier'], $level+1); } }
Dédé86
Messages postés
682
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2017
208
15 mars 2009 à 17:42
15 mars 2009 à 17:42
Merci pour ta réponse.
Je vais me re-documenter correctement sur la récursion et refaire au "papier" l'algorithme. En fait, ce que je voudrais faire c'est utiliser le DOM pour pouvoir afficher l'arborescence des dossiers.
Je vais me re-documenter correctement sur la récursion et refaire au "papier" l'algorithme. En fait, ce que je voudrais faire c'est utiliser le DOM pour pouvoir afficher l'arborescence des dossiers.