所以我找到了earlier problem的根本原因。
原来这是问题的查询。好吧,不是在我身边,至少不是我这么认为。这个问题一直困扰着我好几个小时。不幸的是,这件事我不知道如何解决。
请检查此代码:
public function get_calendar_content($y,$m){
$query = $this->db->query("SELECT * from events WHERE event_date LIKE '$y-$m%'");
$content=array();
foreach($query->result() as $q){
$content[substr($q->event_date,8,2)]=$q->event_details;
}
return $content;
}
此函数忽略了我为$m
或月份提供的任何内容。它只关心这一年。另外,当我尝试从events table
中选择所有数据而不是where
子句时,它仍然只返回events
表中的条目或数据,该表在日期为八月。
当我尝试将where
子句明确写入event_date LIKE '2013-09%'
时,它根本不会返回任何数据。我不明白发生了什么。由于某些未知原因,该函数只会从8月返回数据。我已经尝试在phpMyAdmin上编写查询,它可以正常工作。它只会在我的应用程序中产生不规则性。我的问题可能是什么?
编辑:我现在正在使用多维数组。它修复了有关多个事件的混淆,但仍未返回其他月份的数据。
public function get_calendar_content($y,$m){
$query = $this->db->query("SELECT * from events WHERE event_date LIKE '$y-$m%'");
$content=array();
foreach($query->result() as $q){
$content[substr($q->event_date,8,2)][]=$q->event_details;
}
return $content;
}
答案 0 :(得分:2)
问题在于如何构建返回数组:
substr($q->event_date,8,2)
将获得每个事件的日期(1-31)并且您将其用作您的密钥,但是数组不能具有重复键,因此仅保留最后一个值。
解决方案是更改数组的键值,使它们不重复