我有一张表格,我想填上我每个月有多少条记录的信息。图表需要以以下格式接收数据:

    data: [
    ["Jan", 140],
    ["Feb", 240],
    ["Mar", 190],
    ["Apr", 140],
    ["May", 180],
    ["Jun", 320],
    ["Jul", 270],
    ["Aug", 180]
],

我需要生成每月有多少条记录。我的数据库看起来像:
id |   start     |    end     |
------------------------------
1  |  2015-10-01 | 2015-10-31 |
2  |  2015-10-05 | 2015-10-09 |
3  |  2015-10-06 | 2015-10-07 |
4  |  2015-11-01 | 2015-11-02 |
5  |  2015-11-03 | 2015-11-06 |
6  |  2015-11-09 | 2015-10-13 |
7  |  2015-11-16 | 2015-10-18 |
8  |  2015-11-21 | 2015-10-29 |

所以我们10月份有3个记录,11月份有5个记录。
我应该如何正确初始化一个函数,该函数最终将返回一个正确的格式,以便传递给数据?
我可以像
型号:
   function specialtest($start, $end) {
   $q = ("SELECT count(*) as count FROM reservations WHERE end > '$start' and start < '$end'");
   $query = $this->db->query($q);
   print json_encode($query->result_array());
   exit;
}

然后在控制器中:
   $data = $this->model->specialtest($arg, $arg2);

但这并不是我真正需要的。我每个月都需要这些记录,而不调用任何函数参数,因为我不知道它们?有什么想法吗?

最佳答案

希望有帮助。。。

function specialtest() {
$data = [];
$year = 2015;

for ($i=1; $i<=12; $i++){
    $sql = 'SELECT count(*) as count FROM reservations WHERE YEAR(start) = '.$year.' AND MONTH(start)='.$i;
    $query =  $this->$db->query($sql);
    $results = $query->result_array();
    $data[] = [date('M', strtotime($year.'-'.$i.'-01')) => $results[0]['count']];
}

echo json_encode($data);
exit();
}

关于php - 计算每月有多少事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33894702/

10-09 08:47