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