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

  FORUM HardWare.fr
  Programmation
  PHP

  MySQL et MATCH as SCORE

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MySQL et MATCH as SCORE

n°1401447
polo7
Posté le 05-07-2006 à 20:19:06  profilanswer
 

Salut à tous,
J'ai fait une requête MySQL qui fonctionne:

Code :
  1. $rqt_list = "MATCH (keywords) AGAINST (\"$sk\" )";
  2. $requete = mysql_query("SELECT *, $rqt_list AS score FROM $table_image WHERE $rqt_list" );


Mais je souhaite faire la même chose mais sur plusieurs champs, mais ça ne fonctionne pas en ajoutant le champ city:

Code :
  1. $rqt_list = "MATCH (keywords,city) AGAINST (\"$sk\" )";
  2. $requete = mysql_query("SELECT *, $rqt_list AS score FROM $table_image WHERE $rqt_list" );


J'ai bricollé en faisant des MATCH avec OR, mais le AS score devient inutile:

Code :
  1. $rqt_list = "MATCH (keywords) AGAINST (\"$sk\" ) OR MATCH (city) AGAINST (\"$sk\" )";
  2. $requete = mysql_query("SELECT *, $rqt_list AS score FROM $table_image WHERE $rqt_list" );


Une idée ?


Message édité par polo7 le 13-07-2006 à 23:09:55
mood
Publicité
Posté le 05-07-2006 à 20:19:06  profilanswer
 

n°1406742
polo7
Posté le 13-07-2006 à 23:10:43  profilanswer
 

Personne n'a d'idée ?

n°1406797
omega2
Posté le 14-07-2006 à 08:53:39  profilanswer
 

pas un probléme de php mais de sql => sql/sgbd
 
Mais pourquoi ne pas faire un $rqt_list et un $rqt_list2 avec un "as" sur chacun? Autre idée, mettre $rqt_list entre parentaise dans la partie select.
 
En bref, faut respecter la syntaxe des requettes sql. Autre idée en passant : quand une requette décone, il faut regarder le message d'erreur retourné par mysql. (voir doc de php)

n°1406805
polo7
Posté le 14-07-2006 à 10:10:58  profilanswer
 

Hello,
Merci pour la réponse, je l'ai déplacé sous PHP car sous SGBD, il n'y avait pas de réponse.
Je ne vois pas quelle est ta proposition avec le $rqt_list2 ?
Pour l'erreur de syntaxe, il n'y en a pas, c'est juste que ça ne me retourne par le résultat par pertinance à cause des OR. Si je fait la même requête sur un seu champ, alors c'est OK.

n°1406813
omega2
Posté le 14-07-2006 à 10:49:06  profilanswer
 

ok, je viens de faire des tests pour voir comment ca marche et je viens de réaliser que "match" retourne un nombre. Une solution à premiére vue, ca serait de faire une somme du nombre retourné par chaque "match" afin d'obtenir une note globale.

n°1406855
polo7
Posté le 14-07-2006 à 12:06:52  profilanswer
 

oui, c'est justement le AS SCORE qui s'en occupe, c'est ça l'avantage, c'est que c'est fait pour trier par pertinence.
Au fait, c'est le deuxième code qui pose PB et l'erreur est:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
 
Ca ne nous avance pas bcp.

n°1406892
polo7
Posté le 14-07-2006 à 13:16:26  profilanswer
 

J'ai trouvé, pour que cette requête fonctionne, il faut faire un fulltext dans la bdd pour tous les champs concernés en même temps et pas des fulltext séparé.

Code :
  1. $rqt_list = "MATCH (keywords,city) AGAINST (\"$sk\" )";
  2. $requete = mysql_query("SELECT *, $rqt_list AS score FROM $table_image WHERE $rqt_list" );


Message édité par polo7 le 14-07-2006 à 13:17:01

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

  MySQL et MATCH as SCORE

 

Sujets relatifs
ouvrir l'acces MySQL au réseau local[MYSQL] Probleme de creation de table
[php/mysql] Conserver les parametres de tri sur plusieurs pagesprobleme ON UPDATE CASCADE MYSQL
probleme avec un import fichier texte dans mysqlTri et calcul entre deux tables MySQL
[MySQL] Fonction recherche complexeProbleme Mysql
[PHP / MySQL] Moteur de rechercheAccents/Points d'interrogation en PHP/MySql
Plus de sujets relatifs à : MySQL et MATCH as SCORE


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR