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 :
Avez vous une idée ???
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;
Merci d'avance.
Partager