reconstruction d'une requete sql en utilisant php
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:
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.