Mysql 如何计算日期以制作事件列表?

Mysql 如何计算日期以制作事件列表?,mysql,codeigniter,calendar,codeigniter-2,Mysql,Codeigniter,Calendar,Codeigniter 2,我使用的是Codeigniter V2.1.3,我有一个日历模板,其中有一个日程安排,我想计算特定日期的事件。这是我的数据库: ----Table: schedule ----- id | materialID | borrowerID | date_reserve | ------------------------------------------------ 1 | 7 | 7 | 2013-0

我使用的是Codeigniter V2.1.3,我有一个日历模板,其中有一个日程安排,我想计算特定日期的事件。这是我的数据库:

              ----Table: schedule -----
   id  | materialID  | borrowerID | date_reserve |
   ------------------------------------------------
   1   |     7       |     7      |  2013-08-16  |
   2   |     10      |     10     |  2013-08-16  |
   1   |     12      |     13     |  2013-08-18  |
我想要的是在我的日历模板中,
date=2013-08-16
的总事件将是
2个事件
。这是我的代码,它不起作用,因为它一直只向我发送
1个事件
,也许你可以找出我的错误在哪里:

    $query = $this->db->select('*')->from('schedule')->like('date_reserve', "$year-$month")->get();
    $cal_data = array();
    foreach ($query->result() as $row) {
        $index = ltrim(substr($row->date_reserve,8,2), '0'); 
        $cal_data[$index] = count($row->borrowerID). 'event(s)';
    }
    return $cal_data;

有什么帮助吗?

如果您想知道确切日期的事件数:YYYY-MM-DD,您可以将其替换为:

$r = $this->db->select('id, materialID, borrowerID, date_reserve')
              ->where('date_reverse', $year."-".$month."-".$day)
              ->get('schedule')
              ->result();
您还可以打印结果,以便查看结果。您还可以回显上次查询:
echo$this->db->last_query()

编辑: 我们必须在每个日期运行查询以获取事件数

$cal_data = array();
    for($i=1;$i<=31;$i++)
    {
        $this->db->select('COUNT(id) as count,date_reserve,borrowerID');
    $this->db->from('schedule');    
    $this->db->where('date_reserve',"$year-$month-$i"); 
    //$this->db->group_by('date_reserve');    
    $query = $this->db->get();


    foreach ($query->result() as $row) {
        $cal_data[$index] = $row->count. 'event(s)';
    }
$cal_data=array();
对于($i=1;$idb->选择($COUNT(id)as COUNT,date_reserve,borrowerID));
$this->db->from('schedule');
$this->db->where('date_reserve',“$year-$month-$i”);
//$this->db->group_by('date_reserve');
$query=$this->db->get();
foreach($query->result()作为$row){
$CALU数据[$index]=$row->count.‘事件’;
}

尝试使用
group\u by

public function get_results($date) {   

    $this->db->select('COUNT(id),date_reserve');
    $this->db->from('schedule');

    $this->db->like('date_reserve',$date);

    $this->group_by('date_reserve');    
    $result = $this->db->get();

    return $result->result_array();

}

我怎么能把它放在我的日历模板中呢?只要用这个替换你的查询。然后在foreach中,你将使用
$r
作为参数:
foreach($r作为$row)
你从哪里得到了$day?你从哪里得到了$year?你需要从post数据中设置这些变量,或者你想怎么做就怎么选择COUNT(*)相反,如果您想要完整日期的结果,请在where语句中提供完整日期,否则如果您只想要年和月,您的like语句应该类似于“2013-08%”,以匹配该月的任何一天。@Leonardon Drapeza嗯,现在您面临的问题是什么?我无法将其放在日历模板中。它显示了
1活动
先生,您愿意加入我吗?