|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
babou Nouveau WRInaute
Inscrit le: 19 Juil 2005 Messages: 42
|
Posté le : Lun Aoû 29, 2005 11:17 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
Bonjour à tous,
J'aimerais faire un top des recherches sur mon site.
Le problème, c'est que je ne sais pas comment m'y prendre.
Je peux ajouter une table "search_words" et y mettre tous les mots recherchés.
Mais comment procèder ensuite ?
Savez-vous s'il existe une requête qui extrait les mots les plus utilisés dans le champ de la table ? |
|
| |
|
 |
TOMHTML WRInaute accro

Inscrit le: 25 Aoû 2004 Messages: 3171 Localisation: http://www.vrai-nom.com
|
Posté le : Lun Aoû 29, 2005 11:32 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
| moi je suis Old School alors je ferai ça à la main. Parce que sinon tu va vite te retrouver avec des trucs de cul ou des spams en tête des recherches... :S |
|
| |
|
 |
M.o.n.d.i.a.n.i WRInaute impliqué

Inscrit le: 09 Juil 2005 Messages: 317 Localisation: Belgique
|
Posté le : Lun Aoû 29, 2005 11:43 Sujet du message: Re: PHP, top des recherches : Savez-vous ? |
|
|
| babou a écrit: |
Je peux ajouter une table "search_words" et y mettre tous les mots recherchés.
Mais comment procèder ensuite ?
Savez-vous s'il existe une requête qui extrait les mots les plus utilisés dans le champ de la table ? |
Connais tu SQL? Si oui ca ne devrait pas poser de problemes. Sinon documentes toi la dessus ca s'apprends tres vite et c'est tres interessant. |
|
| |
|
 |
babou Nouveau WRInaute
Inscrit le: 19 Juil 2005 Messages: 42
|
Posté le : Lun Aoû 29, 2005 11:56 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
| Je connais très bien mysql mais je ne sais pas comment procéder... |
|
| |
|
 |
yeca WRInaute passionné

Inscrit le: 02 Sep 2003 Messages: 950
|
Posté le : Lun Aoû 29, 2005 12:05 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
| Code: |
| SELECT recherche, COUNT(recherche) AS nb FROM `search_words` GROUP BY recherche ORDER BY nb DESC |
si tu connais si bien mysql, ça devrait pas te poser problème... |
|
| |
|
 |
CaYuS WRInaute passionné

Inscrit le: 14 Juil 2005 Messages: 601 Localisation: Paris
|
Posté le : Lun Aoû 29, 2005 12:07 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
Une petite proposition du comment procéder, il y en a plein d'autres.
Tu peux ajouter une table search_words qui contiendra tes words et tes hits.
A chaque nouvelle recherche sur ton site, tu incrémentes la valeurs de hits du mot associé, s'il existe dans la table, sinon tu l'insère avec la valeur hits à 1.
Ensuite, supposons que tu veuilles connaître le top 10 de tes mots les plus recherchés, tu peux utiliser la requête suivante :
| Code: |
SELECT *
FROM `search_words`
ORDER BY `hits` DESC
LIMIT 0 , 10 |
Edit : Oups, j'ai été précédé
Edit 2: Requette corigée, cf ci dessous.
Dernière édition par CaYuS le Lun Aoû 29, 2005 12:20; édité 2 fois |
|
| |
|
 |
yeca WRInaute passionné

Inscrit le: 02 Sep 2003 Messages: 950
|
Posté le : Lun Aoû 29, 2005 12:11 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
ce n'est pas la même technique.
moi ça n'impose que de faire un INSERT à chaque recherche.
Mais par contre tu te retrouves vite avec une table avec 50000 entrées.
par contre pour ta requête ce serait pas plutôt :
| Code: |
SELECT *
FROM `search_words`
ORDER BY `hits` DESC
LIMIT 0 , 10 |
 |
|
| |
|
 |
CaYuS WRInaute passionné

Inscrit le: 14 Juil 2005 Messages: 601 Localisation: Paris
|
Posté le : Lun Aoû 29, 2005 12:19 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
Oui tu as raison pour la requête ... quoi qu'avoir les stats des dix mots les moins recherchés ça pourrait être marant aussi
Merci pour la correction ! |
|
| |
|
 |
Nikos38 Nouveau WRInaute
Inscrit le: 23 Juin 2005 Messages: 44
|
Posté le : Lun Aoû 29, 2005 14:09 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
| yeca a écrit: |
ce n'est pas la même technique.
moi ça n'impose que de faire un INSERT à chaque recherche.
Mais par contre tu te retrouves vite avec une table avec 50000 entrées.
|
Oui c'est pour ça que l'autre solution est plus adaptée. |
|
| |
|
 |
doic WRInaute accro

Inscrit le: 07 Nov 2003 Messages: 1083 Localisation: Lima, Perú
|
Posté le : Lun Aoû 29, 2005 14:09 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
Ce que demande Babou, c'est peut-être, comment récupérer les mot-clés depuis le referrer???
Dans ce cas, il faudrait traiter cas par cas les différents sites que tu qualifierais de "moteur", et récupérer la chaine qui se trouve après le query? / q? / requete? <- là c'est aussi à faire au cas par cas, selon le moteur...
sinon, tu as des logiciels de stats qui le font. |
|
| |
|
 |
yeca WRInaute passionné

Inscrit le: 02 Sep 2003 Messages: 950
|
Posté le : Lun Aoû 29, 2005 15:16 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
| Nikos38 a écrit: |
| yeca a écrit: |
ce n'est pas la même technique.
moi ça n'impose que de faire un INSERT à chaque recherche.
Mais par contre tu te retrouves vite avec une table avec 50000 entrées.
|
Oui c'est pour ça que l'autre solution est plus adaptée. |
bah non, parce que ça te force aussi à récupérer la valeur de chaque mot clé à chaque fois.
et avec cette méthode, tu ne peux pas insérer aussi l'IP pour vérification d'un flood, ou la date et l'heure si jamais tu veux suivre dans le temps  |
|
| |
|
 |
TOMHTML WRInaute accro

Inscrit le: 25 Aoû 2004 Messages: 3171 Localisation: http://www.vrai-nom.com
|
Posté le : Lun Aoû 29, 2005 17:07 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
Il parrait qu'on peut trier par nombre d'apparition d'occurences avec Excel mais j'ai pas compris comment il fallait faire
si quelqu'un sait...
ça peut être utile plutôt que de soliciter la BdD |
|
| |
|
 |
babou Nouveau WRInaute
Inscrit le: 19 Juil 2005 Messages: 42
|
Posté le : Lun Aoû 29, 2005 18:42 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
Merci beaucoup pour vos réponses, c'est exactement cela que je voulais faire.
| Code: |
| SELECT recherche, COUNT(recherche) AS nb FROM `search_words` GROUP BY recherche ORDER BY nb DESC |
Si j'ai bien compris :
- Tu selectionnes toutes les lignes du champ "recherche", tu les comptes (ça devient "nb").
- Ensuite tu fais un GROUP BY sur le champ "recherche". Quel effet ça a ?
- Puis tu tris par "nb", ça je comprends. |
|
| |
|
 |
M.o.n.d.i.a.n.i WRInaute impliqué

Inscrit le: 09 Juil 2005 Messages: 317 Localisation: Belgique
|
Posté le : Lun Aoû 29, 2005 18:53 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
Tu fais group by pour compter combien de fois un meme mot revient.
En fait tu devrais plutot ajouter une colonne que tu incrementes à chaque fois qu'un mot est demandé |
|
| |
|
 |
babou Nouveau WRInaute
Inscrit le: 19 Juil 2005 Messages: 42
|
Posté le : Lun Aoû 29, 2005 19:14 Sujet du message: PHP, top des recherches : Savez-vous ? |
|
|
| yeca a écrit: |
| Nikos38 a écrit: |
| yeca a écrit: |
ce n'est pas la même technique.
moi ça n'impose que de faire un INSERT à chaque recherche.
Mais par contre tu te retrouves vite avec une table avec 50000 entrées.
|
Oui c'est pour ça que l'autre solution est plus adaptée. |
bah non, parce que ça te force aussi à récupérer la valeur de chaque mot clé à chaque fois.
et avec cette méthode, tu ne peux pas insérer aussi l'IP pour vérification d'un flood, ou la date et l'heure si jamais tu veux suivre dans le temps  |
C'est vrai.
Avec le méthode de "hits" je ne peux plus faire ça (ou alors avec une autre table...) |
|
| |
|
 |
| |
|
|