ou ou personne ???
:?
Version imprimable
ou ou personne ???
:?
Dans un premier temps, je ne saisis pas bien l'intérêt d'utiliser LIKE alors que tu ne fais pas d'approximation, tu n'as pas de wildcard.
Ensuite, tu ne nous donnes pas la requête complète qui est envoyée à MySQL (en supposant que ce soit bien MySQL qui crise et non PHP, ce que tu ne précises pas non plus) : comment sommes-nous supposés t'aider ?
moi je l'aurrais ecris comme ça
en ajoutant les acolades du whileCode:
1
2
3
4
5
6
7 $informations = @$_GET['informations']; $tableau = split (",", trim($informations)); while (list($key, $valinfo) = each($tableau)){ if ($valinfo != ''){ $query_search .= " AND ((products.departement LIKE '$valinfo') OR (products.ville LIKE '$valinfo') OR (products.codepostal LIKE '$valinfo'))"; } }
reski : dans le cas qui nous occupe, cela ne fait aucune différence. C'est préférable à plusieurs niveaux mais c'est équivalent.
donc en faite avec se code, faire une recherche avec une seul donnée marche tres bien! mais avec plusieur données sa donne aucun résultat.Code:
1
2
3
4
5
6
7
8 $informations = @$_GET['informations']; $tableau = split (",", trim($informations)); while (list($key, $valinfo) = each($tableau)){ if ($valinfo != ''){ $query_search .= " AND ((products.departement LIKE '$valinfo') OR (products.ville LIKE '$valinfo') OR (products.codepostal LIKE '$valinfo'))"; } }
sa marche avec plusieur données dans le cas quels soit dans la meme résultat. :cry:
Bien sûr puisqu'il faut qu'elles soient toutes présentes (cf. ton AND).
Je t'ai dit de mettre un OR, ce n'était pas innocent :/
de cette facon, sa réagie comme si l'INPUT était pas renseigné...Code:$query_search .= " OR (products.departement LIKE '$valinfo') OR (products.ville LIKE '$valinfo') OR (products.codepostal LIKE '$valinfo')";
de cette facon aussi, idem...Code:$query_search .= " OR ((products.departement LIKE '$valinfo') OR (products.ville LIKE '$valinfo') OR (products.codepostal LIKE '$valinfo'))";
sa semble simple, mais la je bloc vraiment sur un truc a la con :?
quelqu'un voit il de quoi je parle ???
bon je me suis démerdé a faire un code un p merdique mais sa marche tres bien :wink:
bon je donne le résultat, si quelqu'un a mieu je suis preneur :D
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $informations = @$_GET['informations']; $tableau = split (",", trim($informations)); while (list($info1, $info2, $info3, $info4, $info5, $info6, $info7, $info8, $info9) = each($tableau)){ if ($info1 != '' || $info2 != '' || $info3 != '' || $info4 != '' || $info5 != '' || $info6 != '' || $info7 != '' || $info8 != '' || $info9 != ''){ $query_search .= " AND (products.departement LIKE '$info1') OR (products.departement LIKE '$info2') OR (products.departement LIKE '$info3') OR (products.departement LIKE '$info4') OR (products.departement LIKE '$info5') OR (products.departement LIKE '$info6') OR (products.departement LIKE '$info7') OR (products.departement LIKE '$info8') OR (products.departement LIKE '$info9')"; } if ($info1 != '' || $info2 != '' || $info3 != '' || $info4 != '' || $info5 != '' || $info6 != '' || $info7 != '' || $info8 != '' || $info9 != ''){ $query_search .= " AND (products.ville LIKE '$info1') OR (products.ville LIKE '$info2') OR (products.ville LIKE '$info3') OR (products.ville LIKE '$info4') OR (products.ville LIKE '$info5') OR (products.ville LIKE '$info6') OR (products.ville LIKE '$info7') OR (products.ville LIKE '$info8') OR (products.ville LIKE '$info9')"; } if ($info1 != '' || $info2 != '' || $info3 != '' || $info4 != '' || $info5 != '' || $info6 != '' || $info7 != '' || $info8 != '' || $info9 != ''){ $query_search .= " AND (products.codepostal LIKE '$info1') OR (products.codepostal LIKE '$info2') OR (products.codepostal LIKE '$info3') OR (products.codepostal LIKE '$info4') OR (products.codepostal LIKE '$info5') OR (products.codepostal LIKE '$info6') OR (products.codepostal LIKE '$info7') OR (products.codepostal LIKE '$info8') OR (products.codepostal LIKE '$info9')"; } }
avec cela sa prend en compte 9 mots clé dans un input...
un grand merci pour votre aide qui est pour moi formidable :D