gpt4 book ai didi

php - Joomla 中的 MYSQL 搜索查询

转载 作者:行者123 更新时间:2023-11-29 14:09:30 25 4
gpt4 key购买 nike

我目前正在编辑一个(非常困惑!)自定义 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”查询,但没有成功。有人有什么想法吗?非常感谢

最佳答案

$per=array('morning'=>array(7, 8, 9, 10, 11),
'afternoon'=>array(12, 13, 14, 15, 16),
'evening'=>array(17, 18, 19, 20, 21));

$query->where('HOUR(a.startTime) IN ('.implode(',',$per[$need].')');

$per=array('morning'=>array('min'=>7, 'max'=>11),
'afternoon'=>array('min'=>12,'max'=> 16),
'evening'=>array('min'=>17,'max'=> 21));

$query->where('HOUR(a.startTime) >= '.$per[$need]['min'].' and HOUR(a.startTime)<='.$per[$need]['max']);

关于php - Joomla 中的 MYSQL 搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13742339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com