Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2011, 13h13   #1
Invité de passage
 
eric diurne
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : eric diurne

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 2
Points : 2
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 :
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 :
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
ediurne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 13h45   #2
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

un truc du genre ? :

Code :
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>";
}
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h10.


 
 
 
 
Partenaires

Hébergement Web