我希望在去年每个月打印一次我的数据库中的列的总数。到目前为止我执行此操作的代码是:
$month = date("n");
$year = date("Y");
$loop = 12;
while($loop>1) {
$first = mktime(0,0,0,$month,1,$year);
$last = mktime(23,59,00,$month+1,0,$year);
$spendingData = mysql_query("SELECT * FROM spending WHERE date BETWEEN $first AND $last") or die(mysql_error());
$totalMonth = 0;
while($spending = mysql_fetch_array($spendingData))
{
$totalMonth = $totalMonth + $spending['amount'];
}
print "£".$totalMonth;
$loop = $loop-1;
print "<br>";
}
我的问题是如何在循环中调整每个月的时间?我想过距离时间戳只有几个月的时间,但我不知道每个月有多少天,我认为这不会起作用。我也不认为我可以继续从月份数字中拿走1,因为这不会占多年。我也不想对这些数字进行硬编码,因为它们会随着每个新月而改变。
我怎样才能做到这一点?
谢谢
答案 0 :(得分:1)
你可以在MySQL中轻而易举地做到这一点:
SELECT MONTH(date) AS month, SUM(amount) AS amount
FROM yourtable
WHERE YEAR(date) = $year
GROUP BY MONTH(date)
无需让PHP参与日期操作。