Bonjour,
J'aimerai créer un menu déroulant qui soit crée dynamiquement à partir de la base. Pour un formulaire de recherche sur des annonces.
Le but est de lister chaque pays présent dans la table annonces
et pour chaque pays, chaque ville présente dans la table annonces
et si la ville est Paris, lister chaque arrondissement.
Le problème est que je n'arrive pas à comprendre ce qui cloche dans ma fonction. Chacun de mes while ne s'exécutent qu'une fois; ce qui me donne un menu déroulant avec 1 pays 1ville...
C'est probablement tout simple mais je ne saisis pas.
Voici la fonction:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 $tb_blocs["$code_bloc"] .= '<p>RECHERCHE</p>'; $tb_blocs["$code_bloc"] .= '<FORM action="index.php" method="post">'; $tb_blocs["$code_bloc"] .= '<INPUT name="module" type=hidden value="recherche">'; //--- destination ---- $tb_blocs["$code_bloc"] .= '<select name="destination">'; $tb_blocs["$code_bloc"].= '<option value="" ></option>'; //Requête passée ici: "SELECT pays FROM tb_annonces GROUP BY pays ORDER BY pays ASC" $params = array('champs'=>'pays', 'tables'=>'tb_annonces', 'group'=>'pays', 'order'=>'pays asc'); $cde = $appart->sql_auto_cde($params, $conditions); $result = $appart->requete_sql($appart->db, $cde); if ($appart->debug_mode || $params['debug']==1) { echo "<b>tableau_pays</b> $cde ("; echo mysql_num_rows($result) . ")<br>"; } while($tb_pays = mysql_fetch_array($result, MYSQL_ASSOC)) { $infos_pays = $tb_pays['pays']; if (strlen($infos_pays)>1) { $tb_blocs["$code_bloc"] .= '<option value="' . $infos_pays . '">----------' . ucfirst(strtolower($infos_pays)) . '</option>'; //Requête passée ici: "SELECT ville FROM tb_annonces WHERE pays='$infos_pays' GROUP BY ville ORDER BY ville ASC" $params = array('champs'=>'ville', 'tables'=>'tb_annonces', 'group'=>'ville', 'order'=>'ville asc'); $conditions[] = "and pays='$infos_pays'"; $cde = $appart->sql_auto_cde($params, $conditions); $result = $appart->requete_sql($appart->db, $cde); if ($appart->debug_mode || $params['debug']==1) { echo "<b>tableau_villes</b> $cde ("; echo mysql_num_rows($result) . ")<br>"; } while ($tb_ville = mysql_fetch_array($result, MYSQL_ASSOC)) { $infos_ville = $tb_ville['ville']; if($infos_ville == 'Paris') { $tb_blocs["$code_bloc"] .= '<option value="' . $infos_ville . '">-----' . $infos_ville . '</option>'; for($i=1; $i<21; $i++) { if($i==1){ $district = '1er'; } else { $district = $i.'ème'; } if($i<10) { $i = '0'.$i; } $tb_blocs["$code_bloc"] .= '<option value="750' . $i . '">-->' . $district . ' arrondissement</option>'; } } else { $tb_blocs["$code_bloc"] .= '<option value="' . $infos_ville . '">' . $infos_ville . '</option>'; } } } } $tb_blocs["$code_bloc"] .= '</select>'; $tb_blocs["$code_bloc"] .= '<input type="submit" id="submit" value="RECHERCHER">'; $tb_blocs["$code_bloc"] .= '</form>';
Partager