bon on va déblayer le terrain parce que c'est pas très clair :
- ca ressemble à du php, vaut mieux éviter de mélanger code php et sql, ca va froisser des gens qui lisent la catégorie SGBD/SQL, à commercer par moi
- ca ressemble à du php qui requête un mysql, donc on va partir sur des requêtes qui fonctionnent sous mysql
On en profite pour convertir un peu le code histoire qu'il soit lisible :
Code :
- $query = "SELECT * FROM mabase WHERE
- (
- type_affaire='$type1'
- OR type_affaire='$type2'
- )
- AND
- (
- type_affaire='$type1'
- OR type_affaire='$type2'
- )
- AND
- (
- type_bien IN
- (
- '$typebien1',
- '$typebien2',
- '$typebien3',
- '$typebien4',
- '$typebien5',
- '$typebien6'
- )
- )";
- $annonce = mysql_query ($query);
|
Bon allez les remarques :
- inutile de faire tout plein de concaténations quand il n'y a pas de besoin
- éviter de faire un "select *" mais un "select champs1, champs2, ..." car sinon c'est la porte ouverte aux failles de sécurité
- ta 2ème condition ressemble à la 1ère
- qu'appelles tu "par commune" ? l'utilisateur filtre sur les communes, tu ajoutes une condition "AND commune='...'" dans ta requête, il est donc normal qu'il ne voit plus toutes les annonces mais seulement les annonces filtrées par la commune choisie
- on ne fait pas de "select * from mabase" mais un "select * from matable"
Message édité par couak le 04-04-2007 à 21:06:31