Compter et grouper les lignes par mois+année sur un champs d

Petit nouveau ! | 2 Messages

08 mars 2012, 21:38

Bonjour j'ai un tableau MySQL qui compte les visiteurs d'un site.
Composé de 4 champs : utilisateur, page, date, adresse IP
Userpierre, page1, 2006-06-09, 10.175.252.8
Userlaurent, page1, 2006-06-09 , 10.175.248.136
Usermichele, page2, 2006-06-09 172.19.108.23

Résultat voulu
Page, utilisateur, date (mois/année), Addition Vu
page1 userpierre 01-2011 15
page1 userlaurent 01-2011 9

page1 userpierre 02-2011 10
…..
Page2 userlaurent 01-2011 4

Page3 usermichel 01-2011 2


Je suis proche du résultat avec ma requête
select ` tstjaction `, `tstjuser`, YEAR(tstjdate), month(tstjdate), sum(tstjaction)
from tbstatjour
WHERE tstjdate >= '2011-01-01'
AND tstjdate <= '2012-02-29'
group by ` tstjaction `, `tstjuser`, YEAR(tstjdate), month(tstjdate)

J’ai un souci sur la date que j’affiche actuellement sur 2 colonnes

ViPHP
xTG
ViPHP | 7331 Messages

08 mars 2012, 22:48

Tous les SGBD proposent une fonction de concaténation de Strings.
Par exemple sous MySQL c'est la fonction CONCAT().
Toujours se souvenir que la documentation est une mine d'informations. ;)

Petit nouveau ! | 2 Messages

11 mars 2012, 13:00

Ok merci, j’ai utilisé la fonction CONCAT,
Par contre j’ai mes dates au départ sous forme 2011-01-01, quand je fais CONCAT( (month(tstjdate),YEAR tstjdate)); j’ai en résultat 1/2011 et non 01/2011 .
y-a-t’il un moyen de ce champ comme date (au pire transformer les 1 en Jan, etc… ?
Parce qu’après je l’exporte en Excel.

Eléphant du PHP | 82 Messages

17 mars 2012, 22:05

Bonjour,

Si tu veux juste reformater la date mysql en date normal, pourquoi n'utilises-tu pas la fonction DATE_FORMAT de mysql ?


Cordialement