PHP, top des recherches : Savez-vous ?

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics

babou
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 42
Inscription: 19 Juil 2005

PHP, top des recherches : Savez-vous ?

Message le Lun Aoû 29, 2005 11:17

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
WRInaute accro
 
Messages: 3250
Inscription: 25 Aoû 2004

Message le Lun Aoû 29, 2005 11:32

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 occasionnel
WRInaute occasionnel
 
Messages: 317
Inscription: 9 Juil 2005

Re: PHP, top des recherches : Savez-vous ?

Message le Lun Aoû 29, 2005 11:43

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
Nouveau WRInaute
 
Messages: 42
Inscription: 19 Juil 2005

Message le Lun Aoû 29, 2005 11:56

Je connais très bien mysql mais je ne sais pas comment procéder...


yeca
WRInaute impliqué
WRInaute impliqué
 
Messages: 953
Inscription: 2 Sep 2003

Message le Lun Aoû 29, 2005 12:05

Code: Tout sélectionner
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 impliqué
WRInaute impliqué
 
Messages: 601
Inscription: 14 Juil 2005

Message le Lun Aoû 29, 2005 12:07

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: Tout sélectionner
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 impliqué
WRInaute impliqué
 
Messages: 953
Inscription: 2 Sep 2003

Message le Lun Aoû 29, 2005 12:11

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: Tout sélectionner
SELECT *
FROM `search_words`
ORDER BY `hits` DESC
LIMIT 0 , 10


;)


CaYuS
WRInaute impliqué
WRInaute impliqué
 
Messages: 601
Inscription: 14 Juil 2005

Message le Lun Aoû 29, 2005 12:19

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 8)
Merci pour la correction !

Nikos38
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Juin 2005

Message le Lun Aoû 29, 2005 14:09

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 passionné
WRInaute passionné
 
Messages: 1147
Inscription: 7 Nov 2003

Message le Lun Aoû 29, 2005 14:09

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 impliqué
WRInaute impliqué
 
Messages: 953
Inscription: 2 Sep 2003

Message le Lun Aoû 29, 2005 15:16

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
WRInaute accro
 
Messages: 3250
Inscription: 25 Aoû 2004

Message le Lun Aoû 29, 2005 17:07

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
Nouveau WRInaute
 
Messages: 42
Inscription: 19 Juil 2005

Message le Lun Aoû 29, 2005 18:42

Merci beaucoup pour vos réponses, c'est exactement cela que je voulais faire.

Code: Tout sélectionner
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 occasionnel
WRInaute occasionnel
 
Messages: 317
Inscription: 9 Juil 2005

Message le Lun Aoû 29, 2005 18:53

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
Nouveau WRInaute
 
Messages: 42
Inscription: 19 Juil 2005

Message le Lun Aoû 29, 2005 19:14

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...)

PHP, top des recherches : Savez-vous ?

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité