8791 sujets

Développement web côté serveur, CMS

Bonjour,

en début de ton script tu mets :
where 1=1

Et donc c'est un peu normal que cela t'affiche tout...

Par contre, et dans ton cas, je t'inviterais bien à te pencher du coté de SphinxSearch pour améliorer tes recherches...
Re-

Alors pour rester dans ton style je ferais ceci :

...
$cherche=str_replace("  "," ",$_POST['requete']);
$qs=explode(" ",$cherche);
$nbq=count($qs);
$rechnom="(nom =  '%$qs[0]%'";
$znom=1;
while($znom<$nbq){
    $rechnom.= " OR nom = '%$qs[$znom]%'";
    $znom++;
}
$rechnom.=")";
$rechprenom="AND (prenom =  '%$qs[0]%'";
$zprenom=1;
while($zprenom<$nbq){
    $rechprenom.= " OR prenom = '%$qs[$zprenom]%'";
    $zprenom++;
}
$rechprenom.=")";
...


et dans ta requête tu concatènes $rechnom et $rechprenom dans ta requête.

Toutefois, c'est assez moyen comme système, car si tu as un utilisateur qui met juste un prénom, ou fait une faute, ça donnera un peu n'importe quoi...
Tu devrais t'orienter vers de la recherche fulltext ou vers un logiciel utilisé en parallèle comme SphinxSearch ! (ex : sur bdfci.info tu tapes "poteur ari" et tu verras le résultat)