2012-07-11 3 views
0

"키워드"검색을 시도하고 있습니다. ARTWORK_title 및 ARTWORK_keywords 필드를보고 있습니다. ARTWORK_keywords 필드는 사용자가 검색 할 여러 태그를 입력 할 수있는 필드입니다.활성 레코드 WHERE 쿼리 필드가 나타나지 않습니다

나는 쿼리를 작성했으며 이것이 올바른 방법이라고 생각하지만, DB 쿼리에서 ARTWORK_title이 다시 전달되지는 않습니다. 다음과 같이 내가 다시 다음 MySQL의 쿼리를 얻고 SQL 쿼리를 프로파일 링 할 때

내 PHP 기능 ....

$my_keywords = explode(",", $search_string); 

    $searchfields = array('ARTWORK_title', 'ARTWORK_keywords'); 

    $this->db->select('*'); 
    $this->db->from('artwork'); 
    $this->db->where('ARTWORK_status', '1'); 

    //$where_string = '('; 

    foreach($my_keywords as $keyword) 
    { 
     foreach($searchfields as $field) 
     { 
      $where_string = $field . ' LIKE \'%' . $keyword . '%\' '; 
     } 


     //$where_string .= substr($where_string, 4) . ')'; 

     $this->db->where($where_string); 
} 

그러나 .... SELECT * FROM (

입니다 artwork) WHERE ARTWORK_status = '1' 및 ARTWORK_keywords LIKE '% 블루 %' 및 ARTWORK_keywords LIKE '% 오렌지 %'

검색어에 ARTWORK_title 필드가 전혀 표시되지 않습니다.

내가 잘못 가고있는 아이디어가 있습니까?

많은 분들께 미리 감사드립니다.

답변

1

반복 할 때마다 $where_string 값이 지워집니다.

은 다음과 같이 수정 :

$where_string = '';  
$counter = 0; 
foreach($my_keywords as $keyword) 
{ 
    foreach($searchfields as $field) 
    { 
     if ($counter > 0) { 
      $where_string .= ' AND ';  
     } 
     $where_string .= $field . ' LIKE \'%' . $keyword . '%\' '; 
     $counter++; 
    } 
} 
+0

안녕 @Yan 그게 전부 다시 필드를 받고. 그러나 쿼리는 이제 MYSQL 오류를주고있다. SELECT * FROM ('artwork') WHERE'ARTWORK_status' = '1'AND'ARTWORK_title' LIKE 'ARTWORK_keywords LIKE'% Blue % 'ARTWORK_title LIKE'% 오렌지 % 'ARTWORK_keywords LIKE'% 오렌지 % ' 무엇을 실행하려고합니까? – StuBlackett

+0

새로운 MySQL 오류 : 알 수없는 열'AND ' – StuBlackett

+0

@StuBlackett 지금 시도하십시오. –

관련 문제