【发布时间】:2023-03-07 10:02:01
【问题描述】:
所以我能够找到我的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 子句时,它仍然只返回日期为8 月份的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;
}
【问题讨论】:
-
明确写的时候是用
event_date LIKE '2013-09'还是event_date LIKE '2013-09%'? -
对不起,我写的是'2013-09%'
-
你为
$m设置了什么值?整数? -
$y 和 $m 是字符串。
-
如果@koala_dev 的解决方案不起作用,请尝试将查询分配给一个变量,然后
echoing 看看它是否符合您的预期。
标签: php mysql codeigniter date web