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
[^] # Re: nombre d'occurences ?
Posté par nicodache . En réponse au message Pertinence reqete sql. Évalué à 2.
$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