회원관리 화면에서 회원검색시 여러 회원이 검색되게 할 수 없을까요? 정보
회원관리 화면에서 회원검색시 여러 회원이 검색되게 할 수 없을까요?본문
요즘 실시하는 클린캠페인 때문에 여쭈어봅니다. (한국정보보호진흥원에서 넘어온 자료 중 주민번호로 검색해 해당 회원을 탈퇴시키고 있습니다.)
관리자화면 -> 회원관리 화면에서
주민번호로 회원검색을 하고 있습니다.
현재 하나의 주민번호만 넣어서 검색을 하고 있는데요...
여러 주민번호를 넣어서 한꺼번에 검색값이 나오게 하고 싶습니다.
adm\member_list.php 에서
상단의 소스인
$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 .= " ) ";
}
여기에서 and 대신 or 을 해봤는데 결국 검색시에는 + 로 검색을 해서 검색결과가 안 나오더군요...
여러 주민번호를 띄워쓰기로 구분해서 넣고 한꺼번에 검색해서 결과가 나오게 수정할 수는 없을까요?? (디비서버 부하상 10개 정도를 한꺼번에 넣고 돌리고 싶은데요... ㅜ.ㅠ)
고수님들의 고견 부탁드립니다. (__)
관리자화면 -> 회원관리 화면에서
주민번호로 회원검색을 하고 있습니다.
현재 하나의 주민번호만 넣어서 검색을 하고 있는데요...
여러 주민번호를 넣어서 한꺼번에 검색값이 나오게 하고 싶습니다.
adm\member_list.php 에서
상단의 소스인
$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 .= " ) ";
}
여기에서 and 대신 or 을 해봤는데 결국 검색시에는 + 로 검색을 해서 검색결과가 안 나오더군요...
여러 주민번호를 띄워쓰기로 구분해서 넣고 한꺼번에 검색해서 결과가 나오게 수정할 수는 없을까요?? (디비서버 부하상 10개 정도를 한꺼번에 넣고 돌리고 싶은데요... ㅜ.ㅠ)
고수님들의 고견 부탁드립니다. (__)
댓글 전체
$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;
// 주민번호검색시 다중 검색(구분자가 공백인 경우의 예제) : 주민번호는 like(instr) 가 아닌 정확한 매치조건으로 가정
case "mb_jumin" :
$temp = explode(" ", $stx);
$or = $temp_sql = "";
for($k=0; $k<count($temp); $k++){
$temp_sql .= " $or $sfl='{$temp[$k]}' ";
$or = " or ";
}
$sql_search .= " ($temp_sql) ";
break;
default :
$sql_search .= " ($sfl like '$stx%') ";
break;
}
$sql_search .= " ) ";
}
* 열개정도가 아니라 수십개해도 별부하가 없을 겁니다.
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;
// 주민번호검색시 다중 검색(구분자가 공백인 경우의 예제) : 주민번호는 like(instr) 가 아닌 정확한 매치조건으로 가정
case "mb_jumin" :
$temp = explode(" ", $stx);
$or = $temp_sql = "";
for($k=0; $k<count($temp); $k++){
$temp_sql .= " $or $sfl='{$temp[$k]}' ";
$or = " or ";
}
$sql_search .= " ($temp_sql) ";
break;
default :
$sql_search .= " ($sfl like '$stx%') ";
break;
}
$sql_search .= " ) ";
}
* 열개정도가 아니라 수십개해도 별부하가 없을 겁니다.
정말 잘 되네요... 감사드립니다. (__) 훨씬 수월하게 작업할 수 있을 거 같아요... 정말 고맙습니다!! ㅜ.ㅠ
아 그런데... 죄송하지만... 구분자를 엔터값, 줄바꿈값으로 하려면 어떻게 해야 하나요??
$temp = explode(" ", $stx);
" " 대신 "\n" 을 넣었는데 제일 마지막 값만 검색을 잡아주네요... ㅜ.ㅠ
엑셀로 온 데이터라... 검색창을 input으로 넣으면 검색값을 가로로 일일히 넣어야 해서... 바로 세로로 넣게 textarea로 바꿨거든요...
$temp = explode(" ", $stx);
" " 대신 "\n" 을 넣었는데 제일 마지막 값만 검색을 잡아주네요... ㅜ.ㅠ
엑셀로 온 데이터라... 검색창을 input으로 넣으면 검색값을 가로로 일일히 넣어야 해서... 바로 세로로 넣게 textarea로 바꿨거든요...