• [^] # Re: nombre d'occurences ?

    Posté par . En réponse au message Pertinence reqete sql. Évalué à 2.

    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...