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 :

foreach dans boucle while


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 79
    Points : 43
    Points
    43
    Par défaut foreach dans boucle while
    Bonjour,

    Le but de mon site web est la gestion de réunion.

    Un formulaire permet la création de réunion dans la table réunion (sous postgre)
    MLD réunion
    (Num_reu, date_reu, lieux_reu, numpers_reu (clé étrangère à la table personne ))

    Sur une autre page, j'affiche les infos de la table réunion.
    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
    <?php
     
    $dbconnect=pg_connect("host=localhost dbname=PTI user=... password=...");
     
    $count = "Select * from reunion";
    $resultat=pg_query($dbconnect,$count);
     
    while($tab=pg_fetch_array($resultat))
    {
     
    blablabla....
     
     $hotesse =$tab['numpers_reu'];
     
    foreach ($hotesse as & $num){
    	$sql="select nom_pers from personnes where num_pers ='".$num."';";
    	$resul=pg_query($dbconnect,$sql);
    	echo $result;
    }
    }
    ?>

    L'idée c'est que en récupérant le numéro de la personne avec $tab['num_pers'] je puisse afficher pour chaque réunion le nom de la personne qui se trouve dans la table personnes.
    Il faut donc que je fasses une requête qui va, pour chaque réunion, afficher le nom de la personne en fonction du numéro situé dans la table reunion.
    J'avais pensé à faire un foreach dans le while avec une requête sql mais je n'y arrive pas.


    Erreur retourner:
    Warning: Invalid argument supplied for foreach()


    Merci de votre aide

  2. #2
    Membre averti Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Points : 413
    Points
    413
    Par défaut
    Bonjour,

    Tu peux remplacer tes boucles par une seule requête en effectuant une jointure

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par hariman Voir le message
    Bonjour,

    Tu peux remplacer tes boucles par une seule requête en effectuant une jointure
    pas vraiment car dans le while j'ai:
    echo"<p style='clear: both;'></p>";
    echo "<img src=images/calendrier_icon.gif />". strftime("%d,%m,%Y",strtotime($tab['date'])) .'</br > Ville: '.$tab['lieux_reu'].'</br > Nombre de personnes: '.$tab['nbpers_reu'].'</br > Hôtesse: ';
    echo"<p style='clear: both;'></p>";

    j'affiche toutes les infos pour chaque réunions, et il y en a environ une dizaine.

  4. #4
    Membre averti Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Points : 413
    Points
    413
    Par défaut
    - Récupère les réunions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct num_reu, date_reu, lieux_reu from reunion
    - Puis, pour chaque réunion, récupère les personnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // pour chaque réunion, faire :
      select personnes.nom_pers from reunion left join personnes on reunion.num_pers = personnes.num_pers where reunion.num_reu = $num_reu

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Heu....
    L’idée c'est de récupérer le nom de la personne pour chaque réunion.
    Donc sans utiliser de boucle je ne vois pas comment faire.

    Lorsque je fais la requête pour récupérer le nom j'obtiens: Resource id #8

  6. #6
    Membre averti Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Points : 413
    Points
    413
    Par défaut
    Citation Envoyé par hariman Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // pour chaque réunion, faire :
      select personnes.nom_pers from reunion left join personnes on reunion.numpers_reu = personnes.num_pers where reunion.num_reu = $num_reu
    C'est là que tu fais un boucle.

    Pour être plus clair :

    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
     
    <?php
     
    $dbconnect=pg_connect("host=localhost dbname=PTI user=... password=...");
     
    $count = "select distinct num_reu, date_reu, lieux_reu from reunion";
    $resultat=pg_query($dbconnect,$count);
     
    while($tab=pg_fetch_array($resultat))
    {
     
      // blablabla....
     
      $num_reu = $tab['num_reu'];
     
      $sql="select personnes.nom_pers from reunion left join personnes on reunion.numpers_reu = personnes.num_pers where reunion.num_reu = $num_reu";
      $resul=pg_query($dbconnect,$sql);
      while ($tab2 = pg_fetch_array($resul))
        echo $tab2['nom_pers'];
     
    }
    ?>

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Là j'ai mieux compris
    Merci beaucoup Hariman

    Sujet résolu.
    Bonne journée

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

Discussions similaires

  1. Problème de bouton stop dans boucle while
    Par Simon et ulrich dans le forum LabVIEW
    Réponses: 4
    Dernier message: 04/08/2011, 10h59
  2. [ODBC] ODBC Access+ requete insert dans boucle while
    Par gpaca dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 17/03/2010, 16h41
  3. Action "onclick" dans boucle "while"
    Par ZeeBee dans le forum Langage
    Réponses: 2
    Dernier message: 03/01/2009, 22h29
  4. Réponses: 3
    Dernier message: 17/08/2007, 13h47
  5. Requete SQL dans boucle while
    Par vince_grenoblois dans le forum MS SQL Server
    Réponses: 18
    Dernier message: 04/08/2006, 20h41

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