다중 검색관련 질문드립니다.

다중 검색관련 질문드립니다.

QA

다중 검색관련 질문드립니다.

답변 2

본문

다중검색 질문입니다.

 

예를들어 회원관리에서 회원레벨이 2인 회원을 보려면

 

도메인/adm/member_list.php?token=80ee1996a45e12dc49a50faff2528875&sfl=mb_level&stx=2

 

위처럼 하면 되는데,

 

여기에 회원레벨이 2이면서 이름이 angel 인 회원을 보려면

 

도메인/adm/member_list.php?token=80ee1996a45e12dc49a50faff2528875&sfl=mb_level&stx=2&sfl=mb_name&stx=angel

 

위처럼 하면 이름이 angel인 회원만 검색이 됩니다.

 

위 조건대로 회원레벨이 2이면서 이름이 angel 인 회원만 보려면 방법이 있는지 문의드립니다. (다중 검색이 가능한지 문의드립니다.)

이 질문에 댓글 쓰기 :

답변 2

관리자 회원리스트에서 기본적인 기능으로는 불가능 합니다.

 

아래 소스를 보시면 아시겠지만 stx, sfl은 각 하나씩만 대입하고 있습니다.

원하시는 결과를 보시려면 아래 소스를 커스텀 해야합니다.

 

$sql_search = " where (1) ";
if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case 'mb_point' :
            $sql_search .= " ({$sfl} >= '{$stx}') ";
            break;
        case 'mb_level' :
            $sql_search .= " ({$sfl} = '{$stx}') ";
            break;
        case 'mb_tel' :
        case 'mb_hp' :
            $sql_search .= " ({$sfl} like '%{$stx}') ";
            break;
        default :
            $sql_search .= " ({$sfl} like '{$stx}%') ";
            break;
    }
    $sql_search .= " ) ";
}
 

 

 

테스트 해볼 환경이 안되서 확인을 못해봤습니다.

아마 에러날겁니다. 대강 참고만 해주세요.

 

도메인/adm/member_list.php?token=80ee1996a45e12dc49a50faff2528875&sfl=mb_level||mb_name&stx=2||angel&sop=and


function get_search_text($stx,$sfl,$sop){
    if ($stx) {
            $sql_search = " {$sop} ";
            switch ($sfl) {
                    case 'mb_point' :
                            $sql_search .= " ({$sfl} >= '{$stx}') ";
                            break;
                    case 'mb_level' :
                            $sql_search .= " ({$sfl} = '{$stx}') ";
                            break;
                    case 'mb_tel' :
                    case 'mb_hp' :
                            $sql_search .= " ({$sfl} like '%{$stx}') ";
                            break;
                    default :
                            $sql_search .= " ({$sfl} like '{$stx}%') ";
                            break;
            }
    }
    return $sql_search;
}//end function

$sql_common = " from {$g5['member_table']} ";
$sql_search = " where (1) ";
$arSfl = explode('||',$sfl);
$arStx = explode('||',$stx);
foreach($arSfl as $key=>$val){
    if($key > 0) $tmp_sop = $sop;
    $sql_search .= " and ( ";
    $sql_search .= get_search_text($arStx[$key],$val,$tmp_sop);
    $sql_search .= " ) ";
}//end foreach
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 36
© SIRSOFT
현재 페이지 제일 처음으로