채택완료

주문내역에서 통합검색하는 방법

2022-07-26 (화) 08:21:39 2,764

현재 영카트 주문내역이 각 필드만 검색이 되는데

통합검색을 하려면 어떻게 해야하나요?

Copy
<option value="all" <?php if($_GET['sel_field'] == 'all'):?>selected="selected"<?php endif?>>통합검색</option>
    <option value="od_id" <?php echo get_selected($sel_field, 'od_id'); ?>>주문번호</option>
    <option value="mb_id" <?php echo get_selected($sel_field, 'mb_id'); ?>>회원 ID</option>
    <option value="od_name" <?php echo get_selected($sel_field, 'od_name'); ?>>주문자</option>
    <option value="od_tel" <?php echo get_selected($sel_field, 'od_tel'); ?>>주문자전화</option>
    <option value="od_hp" <?php echo get_selected($sel_field, 'od_hp'); ?>>주문자핸드폰</option>
    <option value="od_b_name" <?php echo get_selected($sel_field, 'od_b_name'); ?>>받는분</option>
    <option value="od_b_tel" <?php echo get_selected($sel_field, 'od_b_tel'); ?>>받는분전화</option>
    <option value="od_b_hp" <?php echo get_selected($sel_field, 'od_b_hp'); ?>>받는분핸드폰</option>
    <option value="od_deposit_name" <?php echo get_selected($sel_field, 'od_deposit_name'); ?>>입금자</option>
    <option value="od_invoice" <?php echo get_selected($sel_field, 'od_invoice'); ?>>운송장번호</option>
|

답변 3개 / 댓글 2개

채택된 답변
+20 포인트

속도가 많이 느려질수도 있습니다만.. 

Copy
//orderlist.php 

$sel_field = (isset($_GET['sel_field']) && in_array($_GET['sel_field'], array('od_id', 'mb_id', 'od_name', 'od_tel', 'od_hp', 'od_b_name', 'od_b_tel', 'od_b_hp', 'od_deposit_name', 'od_invoice')) ) ? $_GET['sel_field'] : ''; 

// 이 부분 찾아서 array 에 all 추가하시고 

if ($sel_field != "") {
    $where[] = " $sel_field like '%$search%' ";
}
// 이 부분 찾아서 
if ($sel_field != "") {
    if($sel_field == "all"){
        $where[] = "  concat('od_id', 'mb_id', 'od_name', 'od_tel', 'od_hp', 'od_b_name', 'od_b_tel', 'od_b_hp', 'od_deposit_name', 'od_invoice') regexp '".$search."' ";
    } else {
        $where[] = " $sel_field like '%$search%' ";
    }
}

답변에 대한 댓글 1개

답변 대단히 감사합니다. 그런데 코드를 수정하여 통합검색을 하였는데 실제 검색은 되지 않습니다.
계속해서 수정해 보고있는데 코드를 이해하지 못하여 다시 한번 팁을 얻고자 문의를 드려봅니다.

음.... 제 서버에서 테스트 했을땐 따옴표만 지우면 정상 작동 하더라구요... 

Copy
$sql  = " select *,
            (od_cart_coupon + od_coupon + od_send_coupon) as couponprice
           $sql_common
           order by $sort1 $sort2
           limit $from_record, $rows ";

// 이부분 찾으셔서 바로 밑에 

echo $sql;

sql 문 보여주실수 있나요 ?

아, 오타가 있었네요... 

cancat 안에 ' 를 전부 지워주세요~

답변에 대한 댓글 1개

답변감사합니다. 그런데 작은따옴표를 모두 지웠는데도 실제 검색은 되지 않습니다 ㅠㅠ 어렵네요

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