안녕하세요
항상 sir 고수님들의 많은 도움을 받고있는 회원입니다.,
다름이아니라 mysql구문 중 궁금한점이 있어 질문드리게되었습니다.
if (!empty($search_keyword)) { ////////////키워드 검색
$where .= " And ( c.c_name like '%{$search_keyword}%')
OR ( m.bz_nm like '%{$search_keyword}%' )
OR ( c.c_title like '%{$search_keyword}%' )
OR ( c.c_addr1 like '%{$search_keyword}%' )
OR ( c.c_addr2 like '%{$search_keyword}%' )
OR ( c.c_addr3 like '%{$search_keyword}%' )
";
}
이런식으로 짜여있는데요
하나씩은 검색이 잘되는데 6가지항목을 조합하여 검색하여도 나오게끔 하고싶습니다.
아직 mysql쪽은 초보라 많은 도움 부탁드립니다.
감사합니다!
답변 1개 / 댓글 4개
if (!empty($search_keyword)) { ////////////키워드 검색
$where .= " And (
( c.c_name like '%{$search_keyword}%')
OR ( m.bz_nm like '%{$search_keyword}%' )
OR ( c.c_title like '%{$search_keyword}%' )
OR ( c.c_addr1 like '%{$search_keyword}%' )
OR ( c.c_addr2 like '%{$search_keyword}%' )
OR ( c.c_addr3 like '%{$search_keyword}%' )
)
";
}
답변에 대한 댓글 4개
(그렇지 않다면 /lib/common.lib.php 의 get_sql_search() 함수를 참조해 볼 수 있습니다.)
$where .= get_sql_search('', 'c.c_name||m.bz_nm||c.c_title||c.c_addr1||c.c_addr2||c.c_addr3', $search_keyword, 'and');
-------------
위의 코드는.. 아래와 같은 패턴을 처리한 것이라고 보면 됩니다.
$where .= " And (
( c.c_name like '%성남시%')
OR ( m.bz_nm like '%성남시%' )
OR ( c.c_title like '%성남시%' )
OR ( c.c_addr1 like '%성남시%' )
OR ( c.c_addr2 like '%성남시%' )
OR ( c.c_addr3 like '%성남시%' )
)
";
$where .= " And (
( c.c_name like '%만두%')
OR ( m.bz_nm like '%만두%' )
OR ( c.c_title like '%만두%' )
OR ( c.c_addr1 like '%만두%' )
OR ( c.c_addr2 like '%만두%' )
OR ( c.c_addr3 like '%만두%' )
)
";
정말 감사드립니다.
즐거운 하루 되세요^^
답변을 작성하려면 로그인이 필요합니다.
바로 적용해보았는데 기존과 결과가 같습니다.
예를들어 성남시만 검색, 만두만 검색하면 따로따로는 잘나오는데
성남시 만두를 검색하면 나오지않고있습니다.ㅜㅜ