채택완료

관리자 상품관리에서 다중검색 문의드립니다.

2016-06-04 (토) 17:11:56 4,751

관리자 상품관리 상단에 상품명,상품코드등을 이용한 검색창이 있는데요.

단일키워드(또는 텍스트 및 숫자) 하나가 아닌 콤마 구분을 통해 여러개의 제품을 검색하고 싶습니다.

explode 를 이용해서 몇번 시도해봤는데 array에러만 뿜어대네요 ㅎㅎ

(나란 남쟈 ㅠ 기초도 없으면서 그냥 막 댐비는 남쟈 ㄷㄷㄷ)

하다하다 지쳐서 도움요청 드립니다. ^^;

Copy
$where = " and ";$sql_search = "";if ($stx != "") {    if ($sfl != "") {        $sql_search .= " $where $sfl like '%$stx%' ";        $where = " and ";    }    if ($save_stx != $stx)        $page = 1;} if ($sca != "") {    $sql_search .= " $where (a.ca_id like '$sca%' or a.ca_id2 like '$sca%' or a.ca_id3 like '$sca%') ";} if ($sfl == "")  $sfl = "it_name"; $sql_common = " from {$g5['g5_shop_item_table']} a ,                     {$g5['g5_shop_category_table']} b               where (a.ca_id = b.ca_id";if ($is_admin != 'super')    $sql_common .= " and b.ca_mb_id = '{$member['mb_id']}'";$sql_common .= ") ";$sql_common .= $sql_search; // 테이블의 전체 레코드수만 얻음$sql = " select count(*) as cnt " . $sql_common;$row = sql_fetch($sql);$total_count = $row['cnt']; $rows = $config['cf_page_rows'];$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)$from_record = ($page - 1) * $rows; // 시작 열을 구함 if (!$sst) {    $sst  = "it_id";    $sod = "desc";}$sql_order = "order by $sst $sod";  $sql  = " select *           $sql_common           $sql_order           limit $from_record, $rows ";$result = sql_query($sql); //$qstr  = $qstr.'&amp;sca='.$sca.'&amp;page='.$page;$qstr  = $qstr.'&amp;sca='.$sca.'&amp;page='.$page.'&amp;save_stx='.$stx; $listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>';

위 search 부분 어디에선가 수정하는것 같은데 잘 모르겠네요 ㅠㅜ

그리고 검색창이 노출되는 폼입니다.

Copy
<form name="flist" class="local_sch01 local_sch"><input type="hidden" name="page" value="<?php echo $page; ?>"><input type="hidden" name="save_stx" value="<?php echo $stx; ?>"> <label for="sca" class="sound_only">분류선택</label><select name="sca" id="sca">    <option value="">전체분류</option>    <?php    $sql1 = " select ca_id, ca_name from {$g5['g5_shop_category_table']} order by ca_order, ca_id ";    $result1 = sql_query($sql1);    for ($i=0; $row1=sql_fetch_array($result1); $i++) {        $len = strlen($row1['ca_id']) / 2 - 1;        $nbsp = '';        for ($i=0; $i<$len; $i++) $nbsp .= '&nbsp;&nbsp;&nbsp;';        echo '<option value="'.$row1['ca_id'].'" '.get_selected($sca, $row1['ca_id']).'>'.$nbsp.$row1['ca_name'].'</option>'.PHP_EOL;    }    ?></select> <label for="sfl" class="sound_only">검색대상</label><select name="sfl" id="sfl">    <option value="it_name" <?php echo get_selected($sfl, 'it_name'); ?>>상품명</option>    <option value="it_sell_email" <?php echo get_selected($sfl, 'it_sell_email'); ?>>쇼핑몰 관리코드</option>	<option value="it_id" <?php echo get_selected($sfl, 'it_id'); ?>>상품코드</option>    <option value="it_maker" <?php echo get_selected($sfl, 'it_maker'); ?>>제조사</option>    <option value="it_origin" <?php echo get_selected($sfl, 'it_origin'); ?>>원산지</option></select> <label for="stx" class="sound_only">검색어</label><input type="text" name="stx" value="<?php echo $stx; ?>" id="stx" class="frm_input" size="50"><input type="submit" value="검색" class="btn_submit"> </form>

$stx를 

Copy
$keyword = explode(',', $stx);

로 바꾸고 $keyword를 대신 넣어보았는데도 안되네요.

고수님들의 조언 부탁드립니다. ^^;

답변 2개 / 댓글 1개

채택된 답변
+20 포인트

    <option value="it_name" <?php echo get_selected($sfl, 'it_name'); ?>>상품명</option>

    <option value="it_sell_email" <?php echo get_selected($sfl, 'it_sell_email'); ?>>쇼핑몰 관리코드 

    <option value="it_id" <?php echo get_selected($sfl, 'it_id'); ?>>상품코드</option>

    <option value="it_maker" <?php echo get_selected($sfl, 'it_maker'); ?>>제조사</option> 

    <option value="it_origin" <?php echo get_selected($sfl, 'it_origin'); ?>>원산지</option> 

이걸 이러게 하지말고 

<input type="checkbox" name="  "> 이런 식으로 변경

근데 구찬 자나요 

그러니까 걍 

커리문에 다넣어요 걍 그러면 

if ($stx != "") {

    if ($sfl != "") {

        $sql_search .= " $where $sfl like '%$stx%' ";

        $where = " and ";

    }

    if ($save_stx != $stx)

09

        $page = 1;

10

}

필요없는거죠 ㅋ

    $sql_search .= " $where (a.ca_id like '$sca%' or a.ca_id2 like '$sca%' or a.ca_id3 like '$sca%') "; 

이분분을 걍 다 만들어주면 되죠 위조건 5개를 

그리고 걍 아시다시피 explode 으로 다 넣어주면 되죠

답변에 대한 댓글 1개

답변고맙습니다.
뭔소린지 모르겠지만 또 한번 도전해봐야겠네요 ㅎㅎ

간단이 설명 하자면 sfl 를 사용 하지말고 

걍 커리문에 다가 직접 다 넣어줘요 

답변을 작성하려면 로그인이 필요합니다.