我目前正在编辑一个(非常混乱!)自定义 AJAX 过滤器组件,以便用户能够按一天中的时间(早上、下午、晚上)搜索事件时间。系统当前按一天中的小时(12、08 等)搜索记录,并使用过滤中提交的小时对数据库执行 LIKE 搜索以返回结果。
我在过滤模型中将小时分组为时间数组,如下所示:
if($time == 'morning') {
$times = array('07', '08', '09', '10', '11');
}
if($time == 'afternoon') {
$times = array('12', '13', '14', '15', '16');
}
if($time == 'evening') {
$times = array('17', '18', '19', '20', '21');
}
当前使用的查询如下:
if ($time>0){
$query->where('a.startTime LIKE "%'.$time.'%"');
}
我需要更改它的查询,以便能够搜索数据库以检查数据库“时间”字段中的值是否在我的 $times 数组中并执行类似操作,因为它只是我需要的字符串的前两个字符要匹配。这是因为数据库中的值可能不同(15.30、15.45 等),但只需匹配小时 (15)。
我尝试循环遍历数组中的项目,创建“like”和“or”查询,但没有成功。有人有什么想法吗?非常感谢