循环编辑时$ i = 0

时间:2014-02-05 08:23:25

标签: php while-loop

我认为这很简单,只是不是php编码器。研究和阅读帖子我把我的问题缩小到这段代码,但不知道如何编辑。找到并尝试的东西抛出错误。

以下代码运行正常,并为我提供当前日期(今天)和前6天的结果。我想尝试改变,而不是获得过去,我想展示未来的事件。所以今天和未来6天。

$i=0;
while ($i<=6){
    $labeldate=date('m/d',mktime(0,0,0,$sm,$sd-$i,$sy));
    $_SESSION['statistic_week'] = date('Y-m-d',mktime(0,0,0,$sm,$sd-$i,$sy));

    $statistic = querySQL('statistic_week_def');
    foreach ($statistic as $row) {
        $statistic_week_def[$i] = ($row->paxsum) ? $row->paxsum : 0; 
    }
    $labels[] = $labeldate;

$i++;
}

2 个答案:

答案 0 :(得分:0)

在日期函数中使用+ $ i而不是 - $ i,这将增加天数而不是减去它们。

$i=0;
while ($i<=6){
    $labeldate=date('m/d',mktime(0,0,0,$sm,$sd+$i,$sy));
    $_SESSION['statistic_week'] = date('Y-m-d',mktime(0,0,0,$sm,$sd+$i,$sy));

    $statistic = querySQL('statistic_week_def');
    foreach ($statistic as $row) {
        $statistic_week_def[$i] = ($row->paxsum) ? $row->paxsum : 0; 
    }
    $labels[] = $labeldate;

$i++;
}

答案 1 :(得分:0)

<?php
    $i = 0;
    while ($i <= 6) {
        $time = mktime(0, 0, 0, $sm, $sd + $i, $sy)
        $labeldate = date('m/d', $time);
        $_SESSION['statistic_week'] = date('Y-m-d', $time);
        $statistic = querySQL('statistic_week_def');
        foreach ($statistic as $row) {
            $statistic_week_def[$i] = ($row->paxsum) ? $row->paxsum : 0; 
        }
        $labels[] = $labeldate;
        $i++;
    }
?>