Recherche par critère ou reccherche flou [Résolu]

Signaler
Messages postés
34
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
9 février 2009
-
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
-
Bonjour,
Je suis en galère pour un moteur de recherche, en fait mon problème consiste a afficher des resultats d'une requete de ce moteur mais qui demande de chercher dans plusieur champs, et gros la requete que j affiche duplique les resultats vu que par example si je cherche par email et/ou par nom et par consèquent les resultat son complètement faux.
J'ai pensé a faire une recherche par critère c a d (nom, login, adresse mail ...), mais ca me semble pas terrible comme solution.
Merci d'avance.

10 réponses

Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
je mettrais même des () là

$search="and (o.customers_name

like '%". $keywords ."%' or customers_email_address
like '%". $keywords ."%' )";
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
c'est la question
tu veux une recherche multi-critère
ou sur un seul critère sélectionné ?? (plus simple)
A toi de voir
Messages postés
34
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
9 février 2009

Ben ce qui m'interesse c'est plutot une multi-critère mais si c'est trop dificile j opterai pour l'autre
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
si tu sais concaténer une requête sql pas de problème

tu as un bout de code à montrer

avec ce qui ne marche pas bien ??
Messages postés
34
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
9 février 2009

voila ma requete sql avec un seul critère (nom)


elseif (isset($HTTP_GET_VARS['search']) && tep_not_null($HTTP_GET_VARS['search'])) {


$keywords = tep_db_input(tep_db_prepare_input($HTTP_GET_VARS['search'])); // mot clé de recherche


$search = "and o.customers_name like '%" . $keywords . "%' "; // string de recherche


$orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, customers_email_address, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' " . $search . $sortorder;


}


moi je voi un peu la solution avec une modif sur :
$search="and o.customers_name or customers_email_address
like '%" . $keywords . "%' ";
mais ca duplique les resultats avecc des données completement fausses
voila merci
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
deja tu peux simplifier, si les noms de tables ne sont pas des variables, pas de concaténation

tu y verras + clair




from " . TABLE_ORDERS . "

from
TABLE_ORDERS



j'aimerais bien voir le formulaire, je ne comprends pas bien



mais


$search="and o.customers_name or customers_email_address
like '%" . $keywords . "%' ";

ça , ça ne peut pas marcher, il faut répéter le like


$search="and o.customers_name

like '%". $keywords ."%' or customers_email_address
like '%". $keywords ."%' ";
Messages postés
34
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
9 février 2009

Merci BCP c'etait ca l erreur . franchement merci beaucoup.
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

Lis ma signature ... ^^
A++
<hr size="2" width="100%">Si un des membres à poster une reponse qui convient, accepter là !
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
au plaisir

:?)=)
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
justement arnauti avec tout le respect



Si un des membres a posté une reponse qui convient, acceptez la !