Comme l'indique jreaux, tu as un problème d'imbrication de boucles.
Il faut réorganiser les boucles pour
Récupérer les types de marches de l'adhérent
Récupérer les types de marches en base pour construire la liste et vérifier si le type de marche est sélectionné
Ce qui donne (juste en réorganisant les boucles)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42 // liste Type de marche // récupération des id type de marche de la table t_choixmarches par rapport à adherentId $sql2 = "SELECT choixMarcheAdherentId , choixMarcheTypeMarcheId FROM t_adherents INNER JOIN t_choixmarches ON adherentId = choixMarcheAdherentId WHERE choixMarcheAdherentId = $adherentId "; $req2 = $db->query($sql2); $tab_marche = array(); while ($r2 = $req2->fetch()) { // while 1 $choixMarcheAdherentId = $r2['choixMarcheAdherentId']; $choixMarcheTypeMarcheId = $r2['choixMarcheTypeMarcheId']; // ici je construit un tableau que je vais utiliser dans mon foreach $tab_marche[] = $choixMarcheTypeMarcheId; } // fin while 1 // là je vais chercher ma table t_typemarches pour avoir les libelles des typemarche $req3 = $db->query("SELECT typeMarcheId, typeMarcheLibelle,typeMarcheEssai FROM t_typemarches WHERE typeMarcheEssai = '0' ORDER BY typeMarcheId ASC"); // je commence ma construction de ma liste $ld_marches = "<SELECT multiple='4' NAME='lst_marche'>"; $ld_marches .= "<OPTION VALUE=0>Choisissez</OPTION>"; // et là j'essaie de faire un boucle pour associer le libelle de la marche à l'id récupéré while ($r3 = $req3->fetch()) { // while 2 $typeMarcheId = $r3["typeMarcheId"]; $typeMarcheLibelle = $r3["typeMarcheLibelle"]; $s3 = ""; foreach ($tab_marche as $id) { if ($typeMarcheId == $id) { $s3 = "selected"; } } // fin du foreach $ld_marches .= "<OPTION VALUE='$typeMarcheId' $s3 > $typeMarcheLibelle</OPTION>"; } // fin while 2 $ld_marches .= "</SELECT>";
Partager