Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
588 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [MYSQL] Query sur une partie d'un terme avec MATCH AGAINST

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MYSQL] Query sur une partie d'un terme avec MATCH AGAINST

n°2281490
Dawa
www.shootmeagain.com
Posté le 15-05-2016 à 11:55:03  profilanswer
 

Hello à tous,
 
J'ai sur mon site web un champs de recherche comme on peut le voir ici :  
 
http://www.shootmeagain.com  
 
Ce champs de recherche est muni d'un autocomplete qui va suggérer des résultats en fonction des recherches déjà faites, par pertinence.  
 

Code :
  1. $term=addslashes($_GET['term']);
  2. $req=$bd->req_exe("select string, MATCH (string) AGAINST ('$term') as score from search where MATCH (string) AGAINST ('$term') > 1 order by score desc" );
  3. $i=0;
  4. while ($datasearch=$bd->objetSuiv($req))
  5. {
  6.  $strings[$i] = no_accent(stripslashes($datasearch->string));
  7.  $i++;
  8. }
  9. $strings=json_encode($strings);
  10. echo $strings;


 
Le problème est que l'autcomplete ne s'active que lorsque qu'un mot complet est tapé, alors que j'aimerais qu'il s'active dès que quelques caractères sont tapés par exemple, tout en gardant un ordre de tri par pertinence.  
 
Comment procéder ? Merci !  
 
 [:dawa]  :hello:


---------------
SHOOT ME AGAIN WEBZINE
mood
Publicité
Posté le 15-05-2016 à 11:55:03  profilanswer
 

n°2281874
TotalRecal​l
Posté le 22-05-2016 à 09:56:37  profilanswer
 

Ton souci n'est pas côté PHP (serveur) mais côté client (javascript) à mon avis.  
Tu as probablement utilisé une lib toute faite pour l'autocomplete (déclenchement, affichage des résultats), il y a des paramètres pour conditionner quand il se déclenche, regarde dans la doc. Et donne nous les infos sur la librairie que tu as utilisé.
Par exemple : http://api.jqueryui.com/autocomplete/#option-minLength


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2282013
antac
..
Posté le 23-05-2016 à 15:49:33  profilanswer
 

+1, souvent c'est 3 caractères minimum pour éviter trop de faux positifs

n°2282026
mechkurt
Posté le 23-05-2016 à 16:11:48  profilanswer
 

C'est pas 4 caractère minimum au niveau de Mysql par défaut aussi (d’où le réglage JS par défaut) ?
 
Y'a aussi que faut bidouiller par mal les paramètres de Match Against de mémoire (mais Google sera d'une plus grande aide), ça devrait plutôt ressembler à ça :

Code :
  1. $req=$bd->req_exe("select string, MATCH (string) AGAINST ('+$term*' IN BOOLEAN MODE) as score from search where MATCH (string) AGAINST ('+$term*' IN BOOLEAN MODE) > 1 order by score desc" );


---------------
D3

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [MYSQL] Query sur une partie d'un terme avec MATCH AGAINST

 

Sujets relatifs
PYTHON MYSQL C'est pourtant simple mais...[MYSQL] Import fichier csv : empecher l'update de certaines colonnes
Récupérer une url depuis Mysql[Bootstrap] Insérer un lien dans quelle partie du code ?
Problème de connection Jpgraph avec MySQLimprimer seulement une partie du html
SGBD à moyenne volumétrie : MySQL => SQL Server ?Performance MongoDB vs MySQL, resultat étonnant
Tableau PHP a partir de MySQL[MySQL] Grouper en prenant la plus grande valeur
Plus de sujets relatifs à : [MYSQL] Query sur une partie d'un terme avec MATCH AGAINST


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR