{PHP/MySQL} Recherche/Mots-clés populaires
Résolu
Jeremy_me
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
Jeremy_me Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Jeremy_me Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais savoir comment faire, lorsque quelqu'un clique sur Rechercher de mon champs de recherche, ce mot s'ajoute à la base de donnée (jusqu'ici ca va) mais que la page affiche ensuite les mots-clés les plus populaire.
JE ne sais vraiment pas comment faire ca :S
Merci beaucoup de m'aider!
Jeremy
J'aimerais savoir comment faire, lorsque quelqu'un clique sur Rechercher de mon champs de recherche, ce mot s'ajoute à la base de donnée (jusqu'ici ca va) mais que la page affiche ensuite les mots-clés les plus populaire.
JE ne sais vraiment pas comment faire ca :S
Merci beaucoup de m'aider!
Jeremy
A voir également:
- {PHP/MySQL} Recherche/Mots-clés populaires
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Cles windows 8 - Guide
- Recherche photo - Guide
- Mysql community server - Télécharger - Bases de données
- Retrouver un film avec des mots - Télécharger - Divers TV & Vidéo
7 réponses
Fait une table avec deux attributs, le premier, le mot clés rechercher, le deuxième, un compteur qui s'incrémente à chaque fois que quelqu'un recherche ce mot clé.
Ensuite il te suffit de faire un select par ordre décroissant sur le compteur avec une limite de 5 pour afficher les 5 plus populaires par exemple.
Ensuite il te suffit de faire un select par ordre décroissant sur le compteur avec une limite de 5 pour afficher les 5 plus populaires par exemple.
Bonjour,
Je te remercie!
Mais quel commande dois-je utilisé pour dire MySQL de vérifier si le mot est déjà présent et si tel est le cas, incrémenté de 1, et dans le cas contraire, créer l'entré et de mettre 1 comme valeur ?
Je te remercie beaucoup!
Jeremy
Je te remercie!
Mais quel commande dois-je utilisé pour dire MySQL de vérifier si le mot est déjà présent et si tel est le cas, incrémenté de 1, et dans le cas contraire, créer l'entré et de mettre 1 comme valeur ?
Je te remercie beaucoup!
Jeremy
Tu fais un SELECT sur le mot clé (par défaut stockes les tous en minuscules et sans les 's' finaux par exemple).
Si ce SELECT te retourne un enregistrement, c'est celui là que tu dois incrémenté, pour ce faire, tu fait un UPDATE en SQL sur l'enregistrement récupéré avec le SELECT précédemment.
Le cas contraire, s'il n'y a pas d'enregistrements pour ce mot clé, tu le crée avec la COMMANDE INSERT de sql et tu met son compteur par défaut à 1.
En gros :
Ne copie colle pas ce code, il faut encore que tu complète les requête, c'est juste les grosses lignes. De plus dans la première partie du if, n'oublie pas de récupérer le compteur d'enregistrement et de l'incrémenter de 1 puis de le mettre dans ton UPDATE.
Si ce SELECT te retourne un enregistrement, c'est celui là que tu dois incrémenté, pour ce faire, tu fait un UPDATE en SQL sur l'enregistrement récupéré avec le SELECT précédemment.
Le cas contraire, s'il n'y a pas d'enregistrements pour ce mot clé, tu le crée avec la COMMANDE INSERT de sql et tu met son compteur par défaut à 1.
En gros :
$enregistrement = mysql_query("SELECT ..."); if(mysql_num_rows($enregistrement) > 0) { mysql_query("UPDATE ... WHERE clé_primaire=$enregistrement['clé_primaire']"); } else { mysql_query("INSERT INTO ..."); }
Ne copie colle pas ce code, il faut encore que tu complète les requête, c'est juste les grosses lignes. De plus dans la première partie du if, n'oublie pas de récupérer le compteur d'enregistrement et de l'incrémenter de 1 puis de le mettre dans ton UPDATE.
Oui, je te remercie beaucoup, j'essaie ca dans une vintaine de minutes... et si j'ai des problèmes je vous le ferez savoir.
Non t'inquiete je sais que je ne dois pas copier/coller le code xD
Serais-t-il préférable de faire un LIKE ? ou sa gâcherais encore plus les statistiques?
Merci encore
Non t'inquiete je sais que je ne dois pas copier/coller le code xD
Serais-t-il préférable de faire un LIKE ? ou sa gâcherais encore plus les statistiques?
Merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup, sa fonctionne!
Maintenant j'ai une autre question... J'hésite entre créer un nouveau sujet ou simplement le posté ici mais bon.
Dans ma table, j'ai le champs 'count' qui est utilisé pour calculé la popularité de la recherche.
Comment puis-je faiire por additionner TOUT les champs 'count' puis faire le count du mot actuel divisé par le count total...
Ou s'il existe une méthode plus facile et moins carnivore en matière de ressources serveur..
Je vous remercie, encore :)
Maintenant j'ai une autre question... J'hésite entre créer un nouveau sujet ou simplement le posté ici mais bon.
Dans ma table, j'ai le champs 'count' qui est utilisé pour calculé la popularité de la recherche.
Comment puis-je faiire por additionner TOUT les champs 'count' puis faire le count du mot actuel divisé par le count total...
Ou s'il existe une méthode plus facile et moins carnivore en matière de ressources serveur..
Je vous remercie, encore :)
En SQL tu as la fonction SUM() qui fait ça.
Par exemple dans ton cas :
Du coup ça va te sortir un array et à l'index de la clé associative "total" tu trouvera la somme des valeurs du champs count de ta table.
Après te reste à le stocker dans une variable en php et le reste je suppose que tu sais comment faire pour faire un pourcentage sur le total ;) [(nbr / total)*100]
Bonne chance
Par exemple dans ton cas :
SELECT SUM(count) AS total FROM table_recherche
Du coup ça va te sortir un array et à l'index de la clé associative "total" tu trouvera la somme des valeurs du champs count de ta table.
Après te reste à le stocker dans une variable en php et le reste je suppose que tu sais comment faire pour faire un pourcentage sur le total ;) [(nbr / total)*100]
Bonne chance