2012-12-06 57 views
0

我有一個數據庫調用在Joomla內的問題,而我正在循環一個數組來拉取所有記錄,如果有一個匹配值LIKE該數組值。MYSQL 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->或'是一個有效的函數? 我希望查詢執行「WHERE a.startTime LIKE arrayvalue1 OR LIKE arrayvalue2 .... etc」,但我不確定如何使用Joomla數據庫查詢來做到這一點。 感謝

+0

爲什麼字符串通配符搜索?難道不會輕易做'HOUR(a.startTime)BETWEEN $ min和$ max'嗎? –

+0

你應該用名字引用a.startTime。 – Elin

回答

1

你忘了在查詢開頭添加這些行:

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

有關詳情,請點擊此鏈接: JDatabaseQuery

+0

嘿!對不起,我已經在我的代碼中有過,我只是沒有把它放在我的例子中。道歉。 – devoncrazylegs

+0

剛剛看到文檔的鏈接,所以非常感謝! :) – devoncrazylegs

+0

在這種情況下,你可以請把你的問題完整的查詢代碼,只是因爲這是什麼原因造成的問題;) – Lodder