我有一张表格,我想填上我每个月有多少条记录的信息。图表需要以以下格式接收数据:
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/