J'ai une table avec ID, valeur1, valeur2, valeur3 et tstamp (format TIMESTAMP) et j'essaie de grouper par jour et de trouver un total pour chaque jour, mais toutes les valeurs sont cumulables, ce qui pose un problème, parce que la somme (valeur1) ne marche pas donner la bonne sortie, voici mon code:PHP Mysql groupe par date à partir de valeurs cumulatives
$sql = "select date(tstamp), sum(".$column.") from mash group by date(tstamp) order by tstamp asc limit 10";
$result = mysql_query($sql);
$previous = 0;
$firstRun = true;
while($row = mysql_fetch_array($result))
{
$difference = $row[1] - $previous;
if (!$firstRun)
{
$strXML .= "<set name='".$row[0]."' value='".$difference."' color='AFD8F8' />";
}
$previous = $row[1];
$firstRun = false;
}
quelqu'un peut-il repérer la question dans ce code, ses pas la moindre erreur, son juste donner des réponses erronées.
EDIT:
Pour dissiper toute confusion, c'est le SQL:
--------------------------------------------------------
--
-- Table structure for table `mash`
--
CREATE TABLE IF NOT EXISTS `mash` (
`id` int(25) NOT NULL AUTO_INCREMENT,
`steam` int(25) NOT NULL,
`bore_water` int(25) NOT NULL,
`boiler1oil` int(25) NOT NULL,
`boiler2oil` int(25) NOT NULL,
`tstamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5362 ;
--
-- Dumping data for table `mash`
--
INSERT INTO `mash` (`id`, `steam`, `bore_water`, `boiler1oil`, `boiler2oil`, `tstamp`) VALUES
(2, 436, 73, 15, 1, '2010-11-25 12:28:03'),
(3, 495, 74, 36, 1, '2010-11-25 12:38:04'),
(4, 553, 76, 58, 1, '2010-11-25 12:48:09'),
(5, 565, 77, 74, 1, '2010-11-25 12:58:05'),
(6, 584, 79, 78, 1, '2010-11-25 13:08:05'),
(7, 630, 82, 100, 1, '2010-11-25 13:18:11'),
(8, 686, 86, 130, 1, '2010-11-25 13:28:07'),
(9, 740, 89, 151, 1, '2010-11-25 13:38:07'),
(10, 780, 93, 173, 1, '2010-11-25 13:48:13'),
(11, 883, 100, 218, 1, '2010-11-25 14:08:10');
Ne pourriez-vous pas grouper par 'DATE (tstamp)' alors commander par la dernière entrée qui aurait la valeur que vous recherchez? –
Je ne sais pas pourquoi il ne travaille pas Brad, mais sur certains points, il donne des résultats moins, ce qui n'est certainement pas juste. J'ai essayé desc et asc, ni le travail – benhowdle89
@ benhowdle89: Je suis en train de remplir une base de données de démonstration sur ma fin maintenant, donc j'ai quelque chose à tester contre. Est-il prudent de supposer que vous cherchez à atteindre "valeur1", "valeur2", etc. à partir de la dernière entrée (dernière insérée) sur une base quotidienne (puisque la dernière est toujours la précédente plus nouvelle valeur?) –