Bonjour à tous.
Après avoir terminé un site immobilier avec de moteur de recherche multicritères, je souhaite sur cette base le faire évoluer : le faire en 3 langues.
Je me suis documenté, jusque-là tout fonctionne (coockies, session) mais j’ai besoin d’un conseil concernant une requête sur une liste déroulante alimentée par la base de données.
J’aimerai que la requête se fasse sur la colonne estate_type_en si c’est l’anglais qui est sélectionné, etc. Car pour le moment, ce que j’ai fait fonctionne comme dans mon exemple mais je trouve cela assez lourd comme code...
Je vous remercie d'avance.
David
Exemple de la structure type de bien :
et ma liste déroulante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE TABLE IF NOT EXISTS `estate_type` ( `id_estate_type` int(10) unsigned NOT NULL auto_increment, `estate_type` varchar(45) NOT NULL, ` estate_type_en ` varchar(45) NOT NULL, `estate_type_nl` varchar(45) NOT NULL, PRIMARY KEY (`id_estate_type`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;
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
68
69
70 <select name="country"> <option value="">-----</option> <?php if ($_GET['lang']=='fr'){ $sql_fr = "SELECT DISTINCT estate_type.estate_type, id_estate_type FROM estate_type INNER JOIN estate ON estate_type.id_estate_type=estate.estate_type WHERE visible=1 ORDER BY id_estate_type ASC"; $result = mysql_query($sql_fr); while($ln_estate_type = mysql_fetch_array($result)){ if($ln_estate_type['estate_type']==$_REQUEST['estateType']){ $selected="selected='selected'"; } else { $selected=""; } echo "<option value='".($ln_estate_type['id_estate_type'])."' $selected>".utf8_encode($ln_estate_type['estate_type']). "</option>"; } } else if ($_GET['lang']=='en'){ $sql_en = "SELECT DISTINCT estate_type_en, id_estate_type FROM estate_type ORDER BY id_estate_type ASC"; $result = mysql_query($sql_en); while($ln_estate_type = mysql_fetch_array($result)){ if($ln_estate_type['estate_type']==$_REQUEST['estateType']){ $selected="selected='selected'"; } else { $selected=""; } echo "<option value='".($ln_estate_type['id_estate_type'])."' $selected>".utf8_encode($ln_estate_type['estate_type_en']). "</option>"; } } else if ($_GET['lang']=='nl'){ $sql_nl = "SELECT DISTINCT estate_type_nl, id_estate_type FROM estate_type ORDER BY id_estate_type ASC"; $result = mysql_query($sql_nl); while($ln_estate_type = mysql_fetch_array($result)){ if($ln_estate_type['estate_type']==$_REQUEST['estateType']){ $selected="selected='selected'"; } else { $selected=""; } echo "<option value='".($ln_estate_type['id_estate_type'])."' $selected>".utf8_encode($ln_estate_type['estate_type_nl']). "</option>"; } } else{ $sql_fr = "SELECT DISTINCT estate_type.estate_type, id_estate_type FROM estate_type INNER JOIN estate ON estate_type.id_estate_type=estate.estate_type WHERE visible=1 ORDER BY id_estate_type ASC"; $result = mysql_query($sql_fr); if(!$result){ echo "pas de resultats"; }else{ while($ln_estate_type = mysql_fetch_array($result)){ if($ln_estate_type['estate_type']==$_REQUEST['estateType']){ $selected="selected='selected'"; } else { $selected=""; } echo "<option value='".($ln_estate_type['id_estate_type'])."' $selected>".utf8_encode($ln_estate_type['estate_type']). "</option>"; } } } ?> </select>
Partager