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 :

Boucle dans la boucle


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par d�faut Boucle dans la boucle
    Bonjour,

    J'affiche sur une page web, une liste de noms et de pays, de noms de couleur, de nom de style.

    le champ pays, couleur et style sont sous forme de liste d�roulante.
    Si je prends uniquement le champ pays, je souhaite afficher le nom du pays saisi dans la base sql
    Jusque l�, pas trop de souci.

    voici les select
    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
     
    $query1 = "SELECT * FROM comp_post dp
                LEFT JOIN comp_pays dps
                  ON dp.comp_pays = dps.id_pays
                LEFT JOIN comp_coul dc
                  ON dp.comp_couleur = dc.id_coul
                LEFT JOIN comp_style ds
                  ON dp.comp_style = ds.id_style
                ORDER BY comp_date DESC";
    $result = mysql_query($query1) or die(mysql_error());
     
    // Sélection Pays
        $reqPays = "SELECT * FROM comp_pays";
        $resPays = mysql_query($reqPays)or die(mysql_error());
    ?>
    Voici ma boucle dans mon body et ma table
    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 while ($aResult=mysql_fetch_array($result)){?>
    <td >
     <?php $selection=  "SELECT *
                                FROM comp_post dp                                   
                                LEFT JOIN comp_pays dc
                                  ON dp.comp_pays=dc.id_pays
                                WHERE id_pays='".$aResult['comp_pays']."'
                                 ";               
            $result2= mysql_query($selection) or die (mysql_error());?>
     
    <select name="id_pays" id="id_pays" >
      <?php while ($aResult2 = mysql_fetch_array($result2)) { ?>   
        <?php while ($aPays = mysql_fetch_array($resPays)) { 
              if ($aPays['id_pays'] == $aResult['comp_pays']) {
              $selected = ' selected'; 
              } else {
              $selected = ''; } ?>
     
    	 <option value="<?php echo $aPays['id_pays']; ?>"<?php echo $selected; ?>><?php echo $aPays['nom_pays']; ?></option>
      <?php }}?>
    </select>
    </td>
    Le r�sultat est que seul le premier nom avec un pays s�lectionn� s'affiche.
    Les autres s�lect sont vides.

    En langage naturel, je dirais ceci :
    - liste de noms, pays, couleur, style
    - dans cette liste, un menu d�roulant de pays
    - dans ce menu d�roulant, afficher le pays s�lectionn�
    et ce, sur chaque ligne de la liste.

    J'ai pens� � un foreach mais je ne sais pas comment l'�crire ni � quel endroit des boucles le mettre.
    Qui pourrait m'aider ?
    Merci d'avance
    ed

  2. #2
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2005
    Messages
    1 203
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 1 203
    Par d�faut
    Bonjour,

    un truc du genre ? :

    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
    23
    24
    25
    26
    27
    28
     
    $query1 = "SELECT * FROM comp_post dp
                LEFT JOIN comp_pays dps
                  ON dp.comp_pays = dps.id_pays
                LEFT JOIN comp_coul dc
                  ON dp.comp_couleur = dc.id_coul
                LEFT JOIN comp_style ds
                  ON dp.comp_style = ds.id_style
                ORDER BY comp_date DESC";
    $result = mysql_query($query1) or die(mysql_error());
     
    $query2 = "SELECT * FROM comp_pays";
    $result2 = mysql_query($query2) or die(mysql_error());
    $arPays = mysql_fetch_array($result2);
     
     
    while ($row = mysql_fetch_array($result)) {
      echo "<tr>";
      echo "<td>";
      echo "<select name=\"\">";
      foreach($arPays as $pays) {
        $selected= ($pays['id_pays'] == $row['id_pays'])?(" selected=\"selected\""):("");
        echo "<option value=\"".$pays['id_pays']."\"".$selected.">".$pays['nom_pays']."</option>";
      }
      echo "</select>";
      echo "</td>";
      echo "</tr>";
    }

Discussions similaires

  1. [XL-2003] faire une boucle dans une boucle VBA
    Par the-geut dans le forum Macros et VBA Excel
    R�ponses: 4
    Dernier message: 27/04/2010, 15h06
  2. [PHP 5.0] Manipulation XML une boucle dans une boucle
    Par lepotier dans le forum Langage
    R�ponses: 2
    Dernier message: 10/03/2010, 12h15
  3. [LV 8.6] Probl�me de boucle dans une boucle
    Par Quent' dans le forum LabVIEW
    R�ponses: 10
    Dernier message: 28/05/2009, 16h49
  4. Boucle dans une boucle
    Par macgor dans le forum Scripts/Batch
    R�ponses: 0
    Dernier message: 27/02/2009, 18h07
  5. [Tableaux] Boucle dans une boucle
    Par spawns dans le forum Langage
    R�ponses: 2
    Dernier message: 12/02/2006, 13h11

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