search.php 여분필드 검색 관련 $where
본문
영카트 상품등록 폼에(skin > apms > form > item.php) 여분필드($it_1)를 만들고 여분필드를 쪼개서 it_1_1, it_1_2,... 이런식으로 값을 받았는데요.
shop > search.php 에서 아래처럼 조건에 따라 다르게 검색결과를 받아오려하는데 위에 이야기한 것처럼 여분필드 값의 배열을 불러오는 방법이 궁금합니다.(배열이 없는 값은 아래의 a.it_0 처럼 불러왔습니다.)
$sql_common = " from {$g5['g5_shop_item_table']} a, {$g5['g5_shop_category_table']} b ";
$where = array();
if($qcoupon == '1')
{$where[] = " (a.ca_id = b.ca_id and a.it_use = 1 and a.pt_tag like '%$ca1%' and b.ca_use = 1 and b.as_menu_show <> '1' )";}
else if($qcoupon == '3')
{$where[] = " (a.ca_id = b.ca_id and a.it_use = 1 and a.it_0 between '3' and '4' and a.pt_tag like '%$ca1%' and b.ca_use = 1 and a.it_1['it_1_2'] between '3' and '5' and b.as_menu_show <> '1' )";}
//배열, 방법?
답변 4
쉼표 구분자로 저장된다면..
between 으로 검색은 안되구요..
아래와 같이 해당 값이 있는지로 검색해야 합니다.
where concat(a.it_1,',') like "%검색어,%"
it_1 여분필드를 쪼갰다는 말이 구분자로 저장했다는 얘긴가요??
그럼 그 구분자를 넣어서 검색해야 합니다.
a.it_1['it_1_2'] 이런 표현은 사용 불가
필드 자체에 배열이 들어가는게 아닙니다.
빨간색 있는 부분을 $변수명 이렇게 적어두면 됩니다.
변수명이 있으면 sql 읽을때 표시 되서 작동이 되고 없으면 공백으로 처리 되서 그 부분은 작동이 안 됩니다.
it_1에 저장한 방식을 얘길해야 조언이 가능한데 정작 필요한 부분 설명이 빠졌습니다
FIND_IN_SET 에 대하여 찾아보세요