2012-12-06 10 views
0

Joomla에서 데이터베이스 호출에 문제가 있습니다. 반면 배열 값과 일치하는 값이 있으면 모든 레코드를 가져 오는 배열을 반복합니다. 시간이 '아침을'에 해당하는 경우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

왜 문자열 - 와일드 카드 검색 : 자세한 내용은

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

이 링크를 이동? 'HOUR (a.startTime) $ min and $ max'을하는 것이 더 쉬울까요? –

+0

a.startTime을 따옴표로 묶어야합니다. – Elin

답변

1

당신은 처음에 쿼리에 다음 줄을 추가하는 것을 잊지 있습니다 : JDatabaseQuery

+0

안녕하세요! 미안하지만, 이미 내 코드에 내 예제에 넣지 않았어. 사과. – devoncrazylegs

+0

그리고 문서에 대한 링크를 보았습니다. 감사합니다. :) – devoncrazylegs

+0

어떤 경우에는 귀하의 질문에 귀하의 전체 쿼리 코드를 넣어 주시겠습니까, 그게 문제를 일으키는 것입니다;) – Lodder

관련 문제