1

我希望打印我的数据库中去年每个月的列的总数。到目前为止,我要做的代码是:

$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,因为这不会考虑数年。我也不想硬编码这些数字,因为它们会随着每个新的月份而改变。

我怎样才能做到这一点?

谢谢

4

1 回答 1

1

你可以在 MySQL 中相当简单地做到这一点:

SELECT MONTH(date) AS month, SUM(amount) AS amount
FROM yourtable
WHERE YEAR(date) = $year
GROUP BY MONTH(date)

无需让 PHP 参与日期操作。

于 2013-01-25T15:26:54.220 回答