Bonjour,
je fais un petit moteur de cherche qui alimente une table.
Comment puis-je ensuite afficher les 10 mots les plus recherchés svp ?
Merci bien
Bonjour,
Table toute simple : une liste de mots : chaussure, voiture, chocolat,voiture, café, thé,etc...
Il s'agit simplement d'afficher les 10 mots qui ont été saisi le plus souvent.
nr
$fichier = fopen ('listemots.txt', 'a');
fwrite ( $fichier, $mot_recherche );
fclose ($fichier);
Et pour avoir la liste des X mots les plus recherchés :
$liste = array_count_values (file ('listemots.txt') );
Sinon, utilise vraiment la base de données.Code : Tout sélectionner
SELECT mots, count(mots) FROM table_des_mots WHERE mots ORDER BY count(mots) DESC LIMIT 100Une solution (vraiment) très basique, ce serait de supprimer un éventuel "s" final.Reste un petit soucis.
Si une personne tape deux fois exactement le même mot, pas de pb, le système fonctionne parfaitement. Mais si la personne ne tape pas exactement le même mot, par exemple met le mot au pluriel, le système considère qu'il s'agit d'un mot nouveau. Bien sûr on peut dire la même chose des fautes d'orthographe, des espaces, etc... Mais ne peut-on pas au moins, envisager un système simple qui considérerait systématiquement qu'un singulier vaut un pluriel ?
SELECT nom from MATABLE where MATABLE.soundex = soundex($mot);
Si la requête te retourne un résultat, comparer la mot demandé et le mot retourné, par exemple avec levenshtein(). S'ils sont similaire, utiliser le mot que tu as stocké (ne pas oublié de prévenir l'utilisateur que tu fais une recherche sur un mot différent, quand-même).