{PHP/MySQL} Recherche/Mots-clés populaires
Résolu/Fermé
Jeremy_me
Messages postés
31
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
24 septembre 2009
-
20 août 2009 à 19:31
Jeremy_me Messages postés 31 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 24 septembre 2009 - 3 sept. 2009 à 20:51
Jeremy_me Messages postés 31 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 24 septembre 2009 - 3 sept. 2009 à 20:51
A voir également:
- {PHP/MySQL} Recherche/Mots-clés populaires
- Recherche musique - Guide
- Google recherche par image - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql download - Télécharger - Bases de données
- Recherche automatique des chaînes ne fonctionne pas - Guide
7 réponses
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
21 août 2009 à 00:01
21 août 2009 à 00:01
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.
Jeremy_me
Messages postés
31
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
24 septembre 2009
1
21 août 2009 à 03:14
21 août 2009 à 03:14
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
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
23 août 2009 à 17:41
23 août 2009 à 17:41
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.
Jeremy_me
Messages postés
31
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
24 septembre 2009
1
23 août 2009 à 21:45
23 août 2009 à 21:45
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
Jeremy_me
Messages postés
31
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
24 septembre 2009
1
23 août 2009 à 23:59
23 août 2009 à 23:59
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 :)
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
26 août 2009 à 21:18
26 août 2009 à 21:18
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
Jeremy_me
Messages postés
31
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
24 septembre 2009
1
3 sept. 2009 à 20:51
3 sept. 2009 à 20:51
Merci! ;)
Ca fonctionne!
Ca fonctionne!