Hello,

Suite à une recherche en fulltext qui ne retourne aucun résultat, je souhaite switcher en LIKE, mon problème est que je n'arrive pas donner de la valeur sur l'affichage des résultats.

En somme dans cet exemple, il va afficher les résultats par ordre du nom du site (nomsite) (tout simplement et cela fonctionne)

Ce que je souhaiterais, c'est d'afficher le résultat par nombre de mots clefs trouvés..

ma recherche (bidon) "cinéma golf rouge montre foot" => elle ne donne rien en full text, je switch sur mon LIKE et j'aimerais
qu'il affiche le résultat par site qui ont le plus de ces mots clefs dans le nom du site, la description et les mots-clefs.

Si je comptabilise, disons que le site "Horlogerie" à

3x cinéma entre le nom du site, la description et les mots clefs
1x golf entre le nom du site, la description et les mots clefs
2x rouge entre le nom du site, la description et les mots clefs
4x montre entre le nom du site, la description et les mots clefs
0x foot entre le nom du site, la description et les mots clefs

Total comptabilisé : 3+1+2+4 = 10 mots clefs trouvés

le site "Trucbijoux" ne comptabilise que 6 mots clefs trouvés
etc....

L'affichage serait dans l'ordre

1) Horlogerie
2) Trucbijoux

etc...

Voilà le bout de code actuel


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
$motsy = explode( " ", $mots );
if( count( $motsy ) > 0 ) {
 
   $query = "SELECT * FROM $tableannu WHERE ";
   for( $i = 0; $i < count( $motsy ); $i++ ) {
      $query .= "nomsite LIKE '%". $motsy[$i] ."%' OR description LIKE '%". $motsy[$i] ."%' OR mcles LIKE '%". $motsy[$i] ."%'";
      if( $i < count( $motsy ) - 1 )
         $query .= " OR ";
   }
   $query .= " AND pays='0' ORDER BY nomsite ASC LIMIT 0,10";
   $reponse = mysql_query( $query ) or die( mysql_error() );
S'il existe un autre moyen de donner de la valeur sur le nombre de mots clefs trouvés, je suis preneur..

Cordialement
Yule