pour compter le nombre d'occurences, tu fais simplement une requete du genre SELECT * FROM table WHERE (champ LIKE '%$val1%4) OR (champ LIKE '%$val2%') OR (champ LIKE '%$val3%') (moins les fautes)
ensuite, pour chaque enregistrement, tu comptes les occurences de mot, et puis tu affiche les infos par ordre décroissant, par exemple ca :
$tab = array();
while ($data = mysql_fetch_assoc($result)) {
$occurences = 0;
pour toutes mes valeurs de recherche { // $val1, $val2, $val3...
// compter le nombre d'occurence du mot recherché dans la description du truc
// $occurence += nombre de fois que $val revient dans la description
}
$tab[$occurence] = $data[clé_primaire];
}
// ici, tu as un tableau qui contient le total d'occurence des mots recherchés en clé, et l'identifiant de l'enregistrement en valeur
$i = count($tab);
while ($i > 0) {
if (isset($tab[$i])) {
$requete = "SELECT * FROM table WHERE (clé_primaire = ".$tab[$i].")";
$data = mysql_fetch_assoc(mysql_query($requete));
// afficher les données, les premiere affichées étant celles ayant le plus d'occurences des mots recherchés
} // else j'ai pas de tuple qui possède $i occurences des mots recherchés
}
l'inconvénient de cette méthode (outre le code assez pourri), c'est qu'il faut avoir des descriptions irréprochables pour avoir des résultats à peut pres corrects...
[^] # Re: nombre d'occurences ?
Posté par nicodache . En réponse au message Pertinence reqete sql. Évalué à 2.
$tab = array(); while ($data = mysql_fetch_assoc($result)) { $occurences = 0; pour toutes mes valeurs de recherche { // $val1, $val2, $val3... // compter le nombre d'occurence du mot recherché dans la description du truc // $occurence += nombre de fois que $val revient dans la description } $tab[$occurence] = $data[clé_primaire]; } // ici, tu as un tableau qui contient le total d'occurence des mots recherchés en clé, et l'identifiant de l'enregistrement en valeur $i = count($tab); while ($i > 0) { if (isset($tab[$i])) { $requete = "SELECT * FROM table WHERE (clé_primaire = ".$tab[$i].")"; $data = mysql_fetch_assoc(mysql_query($requete)); // afficher les données, les premiere affichées étant celles ayant le plus d'occurences des mots recherchés } // else j'ai pas de tuple qui possède $i occurences des mots recherchés }l'inconvénient de cette méthode (outre le code assez pourri), c'est qu'il faut avoir des descriptions irréprochables pour avoir des résultats à peut pres corrects...