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

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

    autre solution, le ranking par les surfeurs (les visiteurs notent la bonne corrélation entre leur requete et tes résultats) solution pas trop compliquée (quoique) à mettre en oeuvre : crée une autre table, qui contiendra : ID | pk_table | critère | note ID est l'identifiant probablement auto incrémenté de la table, mais ca on s 'en fou pk_table est l'identifiant du tuple concerné dans la table des voyages dans ton cas critère est ce sur quoi la recherche à porté note est le nombre de fois qu'on a voté pour le tuple pk_table, avec le mot critère comme critère (ou bout de) de recherche. à partir de la, tu recois plusieurs mots : $val1, $val2, $val3.
    $requete = "SELECT * FROM table_ranking WHERE (critère = $val1) or (critère = $val2) or (critère = $val3) ORDER BY ranking
    $result = mysql_query($requete);
    if (mysql_num_row($result) == 0) {
     // faire appel à une autre méthode de recherche
     return;
    }
    // else on a trouvé quelque chose
    $présent = array();
    while ($data = mysql_fetch_assoc($result)) {
     $ID = $data["pk_table"];
     if (!présent[$ID] == 0) { // si le résultat a pas déja été cité
     $requete = "SELECT * FROM voyages WHERE (ID = $ID);
     $data = mysql_fetch_assoc(mysql_query($requete));
     // afficher les données
     }
     $présent[$ID] = 1;
    }
    
    inconvénient ce cette méthode : peut ne produite aucun résultat, surtout au début. vérifier que les utilisateurs votent pas n'importe comment probablement assez peu optimisé avantage : après pas mal d'utilisations, très grosse probabilité d'avoir la réponse au dessus