주문내역에서 통합검색하는 방법 채택완료

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

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

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개

채택된 답변
+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개

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

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

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

로그인
🐛 버그신고