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

PHP & Base de données Discussion :

Boucle while imbriqué


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 36
    Points
    36
    Par défaut Boucle while imbriqué
    Bonjour à tous

    J'ai une boucle while qui me sélectionne une liste d'id dans ma table1

    Je voudrais avec une autre boucle while imbriquée à la première afficher des informations pour chaque id depuis une autre table (table2). Les champs id sont communs aux deux tables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $resultaff1=mysql_query($sqlaff1) or die(mysql_error());
    while($tabaff1=mysql_fetch_array($resultaff1))
    {
        $id_entete=$tabaff1['id_entete'];
        $sql2="SELECT * FROM table2 WHERE id_entete=\"$id_entete\"";
        $resultaff2=mysql_query($sql2) or die(mysql_error());
        while($tabaff2=mysql_fetch_array($resultaff2))
        {
            $age=$tabaff2['age'];echo $age;
        } //
    }
    Donc pour chaque id_entete de table1 j'affiche la liste des ages de table2 où l'id_entete est le même.
    seulement, la boucle while imbriquée ne marche pas. elle marche seulement pour le premier enregistrement.
    il y a t-il une solution? Merci

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    La premiere solution serait de le faire en SQL en récupérant directement tous les résultats
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table1, table2 where table1.id_entete = table2.id_entete
    Sinon ta solution me "semble" correcte, a part que le code est dur a lire, penses a le mettre en forme avec le bouton # qui entoure le code des balises [ CODE]et [ /CODE]

    Tu peux, je pense retirer les \" avant et apres $id_entete vu que c'est un nombre

    Peux tu afficher la valeur de id_entete a chaque tour de boucles?

  3. #3
    Membre actif
    Avatar de maxime.ohayon
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 113
    Points : 226
    Points
    226
    Par défaut Boucle
    Pourquoi tu fait pas une jointure ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    OK Je vais essayer la solution en SQL.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Ah non!

    Je ne veux pas afficher les renseignements communs à tous les id_entete. je veux afficher ceux communs à un ou plusieurs id entete que je recupere après l'envoi d'un formulaire par l'utilisateur.

    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sqlaff1="SELECT id_entete FROM table1 WHERE nom=\"$nom\" AND prenom=\"$prenom\"";
    $resultaff1=mysql_query($sqlaff1) or die(mysql_error());
    while($tabaff1=mysql_fetch_array($resultaff1))
    {
    $id_entete=$tabaff1['id_entete'];
    $sql2="SELECT * FROM table2 WHERE id_entete=\"$id_entete\"";
    $resultaff2=mysql_query($sql2) or die(mysql_error());while($tabaff2=mysql_fetch_array($resultaff2)){$age=$tabaff2['age'];echo $age;}
    }

  6. #6
    Membre actif
    Avatar de maxime.ohayon
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 113
    Points : 226
    Points
    226
    Par défaut
    Bein il me semble qu'une jointure bien faite peut faire l'affaire,

    Si j'ai bien compris tu veux récuperer tout les types qui ont le meme nom et le meme prénom et ensuite afficher leurs ages ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Je veux afficher l'âge des personnes dont le nom et le prénom dans table 1 est égal au nom et au prénom dans table2 et égal au nom et au prénom entré dans le formulaire.

    Par exemple si quelqu'un tape NOM: LUC Prénom: Pierre, je veux afficher non seulement l'âge mais aussi d'autres renseignements le concernant. c'est pourquoi je prends dabord après lepost du formulaire, son id et pour chaque id les renseignements. au fait, l'id figure une seule fois dans table1 et plusieurs fois dans table2.

  8. #8
    Membre actif
    Avatar de maxime.ohayon
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 113
    Points : 226
    Points
    226
    Par défaut
    mais bon je sais pas je comprends pas grand chose aux structures de tes tables

Discussions similaires

  1. optimiser une boucle while imbriquer dans une boucle for
    Par bakaratoun dans le forum MATLAB
    Réponses: 0
    Dernier message: 28/01/2010, 15h35
  2. Boucle while imbriqué, problème de renvoi de valeur
    Par biche1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/09/2008, 17h09
  3. Boucle while imbriquées
    Par quentincabo dans le forum VB.NET
    Réponses: 14
    Dernier message: 04/04/2008, 11h29
  4. problème d'execution de 2 boucles while imbriquées
    Par missyos dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 17/03/2008, 14h01
  5. [Tableaux] Boucle while imbriquer
    Par Le-Cortex dans le forum Langage
    Réponses: 11
    Dernier message: 09/09/2005, 14h22

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