0

Joomla内のデータベース呼び出しに問題がありますが、その配列値のように一致する値がある場合、配列をループしてすべてのレコードをプルしています。

これが私のコードです:

$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;

時間が「朝」に等しい場合、「朝」配列にある値を持つレコードのみを返すようにします。クエリの「または」の部分に問題があります。「$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 に答える