Regrouper des résultats par jour, avec une valeur time() ?

Eléphanteau du PHP | 31 Messages

13 févr. 2010, 13:16

Bonjour, voici ma table :
CREATE TABLE `emails` (
  `emails_id` int(11) NOT NULL auto_increment,
  `client_id` int(11) NOT NULL,
  `emails_imap` varchar(75) NOT NULL,
  `emails_headers` text NOT NULL,
  `emails_type` varchar(20) NOT NULL,
  `emails_date` int(11) NOT NULL,
  `emails_date_l` date NOT NULL,
  `emails_subject` varchar(250) NOT NULL,
  `emails_message_id` varchar(250) NOT NULL,
  `emails_to` varchar(250) NOT NULL,
  `emails_from` varchar(250) NOT NULL,
  `emails_no` int(11) NOT NULL,
  `emails_size` int(11) NOT NULL,
  `emails_udate` int(11) NOT NULL,
  `emails_maildate` int(11) NOT NULL,
  `emails_charset` varchar(15) NOT NULL,
  PRIMARY KEY  (`emails_id`),
  KEY `artiste_id` (`artiste_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2535 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2535 ;
J'y enregistre des emails donc.
Mon but est de savoir combien je reçois d'email par jour. Mon problème est que j'ai, en champs "date", une valeur 'time()' donc je ne peux pas faire ce que je sais faire, c'est à dire :
SELECT COUNT(*) AS `nb`, `emails_date` AS `date` FROM `emails` WHERE `emails_date` >= '" . strtotime('2009-01-01') . "' AND `emails_date` <= '" . strtotime('2009-12-31') . "' GROUP BY `emails_date` ORDER BY `emails_date` ASC
Car, et c'est normal, il me groupe les résultats, par seconde. Avez-vous une idée pour pouvoir les grouper par jour en utilisant un champs contenant une valeur time() ?

Merci !
Const.

ViPHP
ViPHP | 5462 Messages

13 févr. 2010, 17:00


Eléphanteau du PHP | 31 Messages

14 févr. 2010, 00:06

Haaa merci vais regarder.
Const.

Eléphanteau du PHP | 31 Messages

24 févr. 2010, 12:16

Ca à fonctionné, merci beaucoup, j'ai appris un truc :)

Pour info, voici ma requête :
SELECT COUNT( *  ) AS `nb` , STR_TO_DATE( FROM_UNIXTIME( `emails_date` ) , '%Y-%m-%d' ) AS `date`
		FROM `emails`
		WHERE `emails_date` >= UNIX_TIMESTAMP( '2009-01-01' )
		AND `emails_date` <= UNIX_TIMESTAMP( '2009-12-31' )
		GROUP BY STR_TO_DATE( FROM_UNIXTIME( `emails_date` ) , '%Y-%m-%d' )
		ORDER BY `emails_date` ASC
Const.