nombre de message par mois

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : nombre de message par mois

par Grummfy » 08 mai 2006, 00:23

merci, effectivement ...

a+

par zeus » 05 mai 2006, 10:42

C'est parce que ton Where n'est pas bon. Tu prends tous les message d'après une date alors qu'il faut prendre que ceux du mois courant

par Grummfy » 05 mai 2006, 10:35

heu moi je veux ceux du mois en cours donc comme j'avais fait me parait bon ... et d'après mes test c'est cela ....

par zeus » 05 mai 2006, 10:24

euh, non, si tu veux les 3 plus gros posteurs, il faut faire un ORDER BY count_msg_by_user ;)

Mais je l'avais oublié dans mon exemple :oops:

par Grummfy » 05 mai 2006, 10:22

merci, c'est juste que la réflexion je l'ai mais sql y a des momement ou j'ai des lacune....
je me doutait de quelque choses du genre mais je ne savais pas trop comment structurer ....

opour finir j'ai rajouter un order by...

Code : Tout sélectionner

SELECT membre_id, COUNT(*) AS count_msg_by_user FROM fsb_messages WHERE message_temps > 114669000 GROUP BY membre_id ORDER BY `message_temps` DESC LIMIT 3
merci

par ouckileou » 05 mai 2006, 09:21

Salut,

c'est sûrement possible, mais il faudrait avoir la structure de la table

A priori tu devras utiliser COUNT (pour compter les messages) et GROUP BY (pour faire le compte séparément pour chaque utilisateur)
avec une jointure entre utilisateurs et messages
une condition dans le where pour les dates
un ORDER BY et LIMIT pour le classement

voilà :D
fait des essais et montre nous si ça ne marche pas

par zeus » 05 mai 2006, 09:21

C'est dommage, tu as fait toute la réflexion, tu as fait 90% du travail ;)

La traduction SQL de cette partie :
On sélectionne les messages du mois ( donc supérieur à une certaine date)
On les comptes par utilisateurs
On prend les 3 premiers.
est :

Code : Tout sélectionner

SELECT user_id, COUNT(*) FROM messages WHERE DATE_FORMAT(date_post, 'Y-M') = '".$annee."-".$mois."' GROUP BY user_id LIMIT 3

nombre de message par mois

par Grummfy » 05 mai 2006, 00:16

Hello,
j'aimerais pouvoir récupéré le membre ayant le plus posté sur mon forum pendant le mois courant. Je me demandais s'il y avait moyen de faire cela avec un minimum de traitement php ( histoire de changer un peu ;) ) genre une seul requête.

donc les étapes :
On sélectionne les messages du mois ( donc supérieur à une certaine date)
On les comptes par utilisateurs
On prend les 3 premiers.

y a t'il moyen de faire cela en une requête ou bien il faux d'office passé par php, analyser et compter chaque messages?

merci

précision : c'est mysql comme base de donnée...