Bonjour,
je voulais construire une requête mysql en utilisant le php.

j'ai trouvé un petit problème le "OR" (signalé en rouge) que j'ai mis se répète.
Comme ça :
select * from bien as b, bien_criteres as bc where b.bien=achat AND b.id_localite=1 AND b.prix<=200000 AND (b.type=Appartement OR b.type=Maison OR ) AND b.surface_totale<=200 AND (b.nombre_piece=3 OR b.nombre_piece=4 OR ) AND b.surface_batue>=125 AND (bc.id_critere=1 OR bc.id_critere=2 OR bc.id_critere=3 OR ) AND b.id_bien=bc.id_bien

Mon code est le suivant :

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
 
$sql="select * from bien as b, bien_criteres as bc where ";
$req_finale=mysql_query("select * from spec_alerte where id_alerte=1");
while ($row=mysql_fetch_assoc($req_finale)){
 
		switch($row['critere']){
		case "bien" :
		$sql.="b.bien=".$row['valeuri'];
		break;
		case "id_localite" :
		$sql.=" AND  b.id_localite=".$row['valeuri'];
		break;
 
		case "prix" :
		$sql.=" AND  b.prix<=".$row['valeuri'];
		$sql.=" AND (";
		break;
 
		case "type" :
		 $sql.="b.type=".$row['valeuri'];
		 $sql.=" OR ";		 
		break;
 
		case "surface_totale" :
		$sql.=") AND  b.surface_totale<=".$row['valeuri'];
		$sql.=" AND (";
		break;
 
		case "nombre_piece" :
 
		$sql.="b.nombre_piece=".$row['valeuri'];
        $sql.=" OR ";	
		break;
 
		case "surface_batue" :
		$sql.=") AND  b.surface_batue>=".$row['valeuri'];
		$sql.=" AND (";
		break;
 
		case "id_critere" :
		$sql.="bc.id_critere=".$row['valeuri'];
        $sql.=" OR ";	
		break;
		}
}
$sql.=") AND b.id_bien=bc.id_bien";
echo $sql;
Avez vous une idée ???

Merci d'avance.