0

我在 Joomla 中的数据库调用存在问题,而我正在循环通过一个数组以提取所有记录,如果有一个匹配的值 LIKE 该数组值。

这是我的代码:

$time = JRequest::getVar('time');

    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(isset($times)) {
        $first = array_shift($times);
        $query->where('a.startTime LIKE "%'. $first .'%"');
        foreach($times as $tim => $val) {               
            $query->or('a.startTime LIKE "%'. $val .'%"');
        }
    }
    $query->order('a.weekday,a.startTime ASC');

    return $query;

如果时间等于“Morning”,我只希望它返回具有“Morning”数组中的值的记录。我的查询的“或”部分有问题。我不认为 '$query->or' 是一个有效的函数?我希望查询执行“WHERE a.startTime LIKE arrayvalue1 OR LIKE arrayvalue2....etc”,但我不确定如何使用 Joomla 数据库查询来执行此操作。谢谢

4

1 回答 1

1

您忘记在查询的开头添加这些行:

$query = $db->getQuery(true);
$query->select('*');

有关更多详细信息,请访问此链接: JDatabaseQuery

于 2012-12-06T14:41:07.027 回答