개발 Q&A

제목 mysql select 변수 할당이 잘 안되네요;; 어떻게 할수 있을까요?
카테고리 DB
글쓴이 그동안 작성시각 2019/02/26 02:08:00
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 309   RSS
이 변수를  $company_search_name = $array['company_search_name']; 
6번 줄에 대입하고 싶은데 어떻게 하면 될까요?  POSITION("$company_search_name" IN company_name)



function master_company_search($array)
{
    $company_search_name = $array['company_search_name'];                              //[1]array로 받은 값 변수화
    $sido_search_name = $array['sido_search_name'];                                    //[1]array로 받은 값 변수화
     
    $this->db->select('company_id, company_name, POSITION("$company_search_name" IN company_name) AS keyword_position, business_type, addr ');  //position은 mysql 위치 함수 임.    
    $this->db->from('master_company');   
    $this->db->like('company_name', $company_search_name );                            //[2]대입. company_name db필드에서 $company_search_name 키워드를 찾음
    $this->db->like('addr', $sido_search_name );                                       //[2]대입. addr db필드에서 $sido_search_name 키워드를 찾음
    $this->db->not_like('company_name', '일용');                                       //제외
    $this->db->not_like('company_name', '입주자'); 
    $this->db->order_by("keyword_position", "asc");                                    //정렬. keyword_position에서 검색한 키워드가 앞에 위치한 것
    $this->db->limit(10);                                                              //[추후수정]가져올 개수, 옵셋  
    $query = $this->db->get();                                                              
    $result = $query->result();
    return $result;   
}

 

 다음글 숫자형 데이터 꺼네올때 콤마찍는법좀 알려주세요. (2)
 이전글 db like 검색중 인데, 조건이 1개일때는 되는데,... (3)

댓글

한대승(불의회상) / 2019/02/26 09:03:09 / 추천 0
$this->db->select('company_id, company_name, POSITION("$company_search_name" IN company_name) AS keyword_position, business_type, addr ');

이문장을 아래처럼 고쳐 쓰세요.

$this->db->select('company_id, company_name, business_type, addr ');
$this->db->select("POSITION('{$company_search_name}' IN company_name) AS keyword_position", false);

 

그동안 / 2019/02/26 10:33:58 / 추천 0

대승님. 감사합니다 덕분에 해결됐습니다.

혹시, 뒤에 ,false은 어떤 의미인지 알수 있을까요?   keyword_posision 값이 없으면 건너뛴다는 뜻인지?? 잘모르겠네요.

kaido / 2019/02/26 10:56:25 / 추천 0

기본값은 true 입니다. 쿼리문에  mysql 보호 기호인 ' 백틱 문자열을 넣겠다는 의미입니다. false 로 하면 문자열을 추가하지 않고 네이티브하게 쓰겠다는 의미입니다.

$this->db->last_query() 찍어보시면 생각하지 못한 형태로 쿼리가 들어가 있음을 확인 하실수 있습니다.