글작성 페이지에 생성한 여러 입력필드 중 가능한 운동을 선택하는 항목이 있습니다.
축구, 농구, 축구 + 농구 라는 세가지 선택지가 라디오 버튼으로 존재합니다.
이에 대해 리스트 페이지에서 검색창을 구성했습니다.
검색창의 검색 옵션에도 '축구', '농구', '축구+농구' 세가지가 라디오 버튼으로 존재합니다.
검색 옵션에 '축구+농구'를 선택하고 검색버튼을 누르면 의도한대로 '축구+농구'를 선택한 게시물이 나타납니다.
이에 더해 검색 옵션으로 '축구' 또는 '농구'를 선택했을 때 '축구+농구'를 선택한 게시물이 나타나게 하려고합니다.
function.php - kboard_list_where
if ( !empty($_GET['kboard_search_option']['game_type']['value']) ) {
if ( $_GET['kboard_search_option']['game_type']['value'] == '축구' ) {
$where .= " OR (`option_game_type`.`option_key`='game_type' AND `option_game_type`.`option_value` = '축구+농구')";
}
}
위와 같이 추가했을 때는 검색창 옵션에서 축구를 선택하고 검색했을때에도 축구+농구 선택 게시글이 나오긴 합니다만, 검색창의 검색 조건이 여러개인데 다른 조건들이 싹 무시되고 '축구+농구'면 모두 나오는 것 같습니다.
예를 들어 검색창의 다른 옵션 중 하나인 나이 입력필드 검색 옵션은 20세 까지로 설정했는데, 축구+농구 게시글 중 나이는 26세를 입력한 게시글도 리스트에 표시됩니다.
안녕하세요~^^
남겨주신 코드나 내용만 봤을 때는
크게 문제가 없어보이는 듯 한데
가장 정확한 것은 전체 코드를 확인해보셔야 할 듯 합니다
필터 사용 시
print_r($where);
와 같이 하셔서
phpMyAdmin 등의 프로그램에 SQL문을 동작시켰을 때
의도한 대로 결과가 나오는지 확인해보시겠어요?
고맙습니다.