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 :
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 ;
et ma liste déroulante:

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>