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 :

Problème mettre array dans une boucle.


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Problème mettre array dans une boucle.
    Salut à tous !
    Je débute en PHP et je bloque depuis hier sur boucle dans laquelle j'essaie d'introduire une autre boucle.
    J'ai bêtement essayer d'inclure dans ma boucle for une boucle while :
    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
     
    	for ($i=0; $i<=$nb_ligne; $i++)
    	{
    		$comment='comment'.$i;
    		$id='id'.$i;
     
            while ($boucle=mysqli_fetch_array($resultat))
    {
        // simple vérification du contenu de mes array
    	var_dump($boucle); echo "</br>";
     
       // affiche les champs à remplir selon le nb de ligne de ma base de donnée
    		echo "<input type='textarea' name='".$comment."' value='".$boucle[1]."'/>"; echo "<br/>";echo "<br/>";
     
       // Poste les id pour retrouver la correspondance entre n°id et champ de texte.
    		echo "<input type='hidden' name='".$id."' value='".$boucle[0]."'/>";
    	}
    echo "<input type='submit' name='valider' value='envoyer'/>";
    echo "</form>";
    }}
    Sans résultat , j'ignore s'il existe une boucle spéciale pour ce genre d'opération. Je suppose qu'il faille mettre un array récupérée de la première boucle dans la seconde.
    En résumé :
    Comment inclure les boucle l'une dans l'autre?
    Ou à défaut,
    Comment récupérer un array d'une première boucle puis l'inclure dans la seconde?

    PS : j'ai essayé toute les méthodes à la porté de mon niveau de débutant et j'aimerais, si ce n'est la solution, au moins être lancé sur une nouvelle voix dans laquelle diriger mes recherches.

    Merci d'avance pour vos réponses!

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir et Bienvenue sur Developpez

    J'imagine que $nb_ligne est le nombre de lignes du résultat de la requête laquelle tu parcours dans la boucle while, tu n'as pas besoin de la boucle for mais mets directement dans la boucle while l'incrémentation.


    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
    $i=0;
    while ($boucle=mysqli_fetch_array($resultat))
        {
            $comment='comment'.$i;
            $id='id'.$i;
            // simple vérification du contenu de mes array
            var_dump($boucle); echo "</br>";
     
           // affiche les champs à remplir selon le nb de ligne de ma base de donnée
            echo "<input type='textarea' name='".$comment."' value='".$boucle[1]."'/>"; echo "<br/>";echo "<br/>";
     
           // Poste les id pour retrouver la correspondance entre n°id et champ de texte.
            echo "<input type='hidden' name='".$id."' value='".$boucle[0]."'/>";
            $i++;
        }
    echo "<input type='submit' name='valider' value='envoyer'/>";
    echo "</form>";
    A+.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci pour ton aide, j'ai enfin réussi!
    J'avais d'abord essayé comme toi avec une boucle for mais pensant être sur la mauvaise voie j'avais abandonné.
    Je mettais le mysqli_fetch_array() à l'extérieur de la boucle donc ça ne risquait pas de marcher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        for ($i=0; $i<=$nb_ligne; $i++)
        {
            $comment='comment'.$i;
            $id='id'.$i;
     
          $bouc=mysqli_fetch_array($resultat);
     
        var_dump($boucle); echo "</br>";
            echo "<input type='textarea' name='".$comment."' value='".$boucle[1]."'/>"; echo "<br/>";echo "<br/>";
            echo "<input type='hidden' name='".$id."' value='".$boucle[0]."'/>";
        }
    echo "<input type='submit' name='valider' value='envoyer'/>";
    echo "</form>";
    }

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,
    Je pense que c'est plus propre de parcourir le résultat comme je l'ai fait avec le boucle while.
    input type="textarea" n'existe pas mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo "<textarea name='".$comment."' >".$boucle[1]."</textarea>";
    A+.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    En effet, la boucle while marche mieux.
    Pour une raison inconnu, dans la boucle for, les balises textarea refusent de fonctionner correctement...

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

Discussions similaires

  1. [SimpleXML] Google Maps, Problème d'encoding dans une boucle
    Par yahn dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 23/09/2006, 19h40
  2. Réponses: 2
    Dernier message: 28/08/2006, 13h16
  3. Problème de SCANF dans une boucle WHILE
    Par FidoDido® dans le forum C
    Réponses: 4
    Dernier message: 30/12/2005, 17h42
  4. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  5. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 10h19

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