member_list.php에 조건을 추가했는데 안되네요
mb_1에 딸기반이라고 입력된 회원과 mb_7 에 1 이 입력된 회원을 불러옵니다.
불러오기는 잘네요(두조건중 한조건이라도 맞으면 불어옴 or)
근데 회원관리 검색창에서 검색을 하면 한회원만 검색이 되어야 하는데
mb_7에 1 이 입력된 모든 회원이 같이 검색 되어 리스트에 나타납니다.
어디를 수정해줘야 할지...막막하네요...
고수님들의 따뜻한 손길 부탁드립니다...
꾸벅...
======================================================
<?
$sub_menu = "200100";
include_once("./_common.php");
auth_check($auth[$sub_menu], "r");
$token = get_token();
$sql_common = " from $g4[member_table] ";
$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
case "mb_id" :
$sql_search .= " ($sfl = '$stx') ";
break;
case "mb_3" :
$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 .= " ) ";
}
//if ($is_admin == 'group') $sql_search .= " and mb_level = '$member[mb_level]' ";
if ($is_admin != 'super')
$sql_search .= " and mb_level <= '$member[mb_level]' ";
$sql_search .= " and mb_1 = '딸기반' "; // 소속만 나타나게)
$sql_search .= " or mb_7 = '1' "; // 소속만 나타나게)
if (!$sst) {
$sst = "mb_datetime";
$sod = "desc";
}
$sql_order = " order by $sst $sod ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$rows = $config[cf_page_rows];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
// 탈퇴회원수
$sql = " select count(*) as cnt
$sql_common
$sql_search
and mb_leave_date <> ''
$sql_order ";
$row = sql_fetch($sql);
$leave_count = $row[cnt];
// 차단회원수
$sql = " select count(*) as cnt
$sql_common
$sql_search
and mb_intercept_date <> ''
$sql_order ";
$row = sql_fetch($sql);
$intercept_count = $row[cnt];
$listall = "<a href='$_SERVER[PHP_SELF]' class=tt>처음</a>";
$g4[title] = "회원관리";
include_once("./admin.head.php");
$sql = " select *
$sql_common
$sql_search
$sql_order
limit $from_record, $rows ";
$result = sql_query($sql);
$colspan = 15;
?>
<script language="javascript" src="<?=$g4[path]?>/js/sideview.js"></script>
<script language="JavaScript">
var list_update_php = "member_list_update.php";
var list_delete_php = "member_list_delete.php";
</script>
<table width=100%>
<form name=fsearch method=get>
<tr>
<td width=50% align=left><?=$listall?>
(총회원수 : <?=number_format($total_count)?>)
<!--<a href='?sst=mb_intercept_date&sod=desc&sfl=<?=$sfl?>&stx=<?=$stx?>' title='차단된 회원부터 출력'><font color=orange>차단 : <?=number_format($intercept_count)?></font></a>,
<a href='?sst=mb_leave_date&sod=desc&sfl=<?=$sfl?>&stx=<?=$stx?>' title='탈퇴한 회원부터 출력'><font color=crimson>탈퇴 : <?=number_format($leave_count)?></font></a>)-->
</td>
<td width=50% align=right>
<select name=sfl class=cssfl>
<!-- <option value='mb_1'>소속</option>-->
<option value='mb_id'>회원아이디</option>
<option value='mb_name'>이름</option>
<option value='mb_nick'>별명</option>
<option value='mb_3'>이름</option>
<option value='mb_tel'>전화번호</option>
<option value='mb_hp'>핸드폰번호</option>
<option value='mb_level'>권한</option>
<option value='mb_email'>E-MAIL</option>
<option value='mb_datetime'>가입일시</option>
</select>
<input type=text name=stx class=ed required itemname='검색어' value='<? echo $stx ?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
</form>
</table>
mb_1에 딸기반이라고 입력된 회원과 mb_7 에 1 이 입력된 회원을 불러옵니다.
불러오기는 잘네요(두조건중 한조건이라도 맞으면 불어옴 or)
근데 회원관리 검색창에서 검색을 하면 한회원만 검색이 되어야 하는데
mb_7에 1 이 입력된 모든 회원이 같이 검색 되어 리스트에 나타납니다.
어디를 수정해줘야 할지...막막하네요...
고수님들의 따뜻한 손길 부탁드립니다...
꾸벅...
======================================================
<?
$sub_menu = "200100";
include_once("./_common.php");
auth_check($auth[$sub_menu], "r");
$token = get_token();
$sql_common = " from $g4[member_table] ";
$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
case "mb_id" :
$sql_search .= " ($sfl = '$stx') ";
break;
case "mb_3" :
$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 .= " ) ";
}
//if ($is_admin == 'group') $sql_search .= " and mb_level = '$member[mb_level]' ";
if ($is_admin != 'super')
$sql_search .= " and mb_level <= '$member[mb_level]' ";
$sql_search .= " and mb_1 = '딸기반' "; // 소속만 나타나게)
$sql_search .= " or mb_7 = '1' "; // 소속만 나타나게)
if (!$sst) {
$sst = "mb_datetime";
$sod = "desc";
}
$sql_order = " order by $sst $sod ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$rows = $config[cf_page_rows];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
// 탈퇴회원수
$sql = " select count(*) as cnt
$sql_common
$sql_search
and mb_leave_date <> ''
$sql_order ";
$row = sql_fetch($sql);
$leave_count = $row[cnt];
// 차단회원수
$sql = " select count(*) as cnt
$sql_common
$sql_search
and mb_intercept_date <> ''
$sql_order ";
$row = sql_fetch($sql);
$intercept_count = $row[cnt];
$listall = "<a href='$_SERVER[PHP_SELF]' class=tt>처음</a>";
$g4[title] = "회원관리";
include_once("./admin.head.php");
$sql = " select *
$sql_common
$sql_search
$sql_order
limit $from_record, $rows ";
$result = sql_query($sql);
$colspan = 15;
?>
<script language="javascript" src="<?=$g4[path]?>/js/sideview.js"></script>
<script language="JavaScript">
var list_update_php = "member_list_update.php";
var list_delete_php = "member_list_delete.php";
</script>
<table width=100%>
<form name=fsearch method=get>
<tr>
<td width=50% align=left><?=$listall?>
(총회원수 : <?=number_format($total_count)?>)
<!--<a href='?sst=mb_intercept_date&sod=desc&sfl=<?=$sfl?>&stx=<?=$stx?>' title='차단된 회원부터 출력'><font color=orange>차단 : <?=number_format($intercept_count)?></font></a>,
<a href='?sst=mb_leave_date&sod=desc&sfl=<?=$sfl?>&stx=<?=$stx?>' title='탈퇴한 회원부터 출력'><font color=crimson>탈퇴 : <?=number_format($leave_count)?></font></a>)-->
</td>
<td width=50% align=right>
<select name=sfl class=cssfl>
<!-- <option value='mb_1'>소속</option>-->
<option value='mb_id'>회원아이디</option>
<option value='mb_name'>이름</option>
<option value='mb_nick'>별명</option>
<option value='mb_3'>이름</option>
<option value='mb_tel'>전화번호</option>
<option value='mb_hp'>핸드폰번호</option>
<option value='mb_level'>권한</option>
<option value='mb_email'>E-MAIL</option>
<option value='mb_datetime'>가입일시</option>
</select>
<input type=text name=stx class=ed required itemname='검색어' value='<? echo $stx ?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
</form>
</table>
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 8개
$sql_search .= " and mb_level <= '$member[mb_level]' ";
$sql_search .= " and mb_1 = '딸기반' "; // 소속만 나타나게)
$sql_search .= " or mb_7 = '1' "; // 소속만 나타나게)
이 부분은 딸기반 이거나(or) 소속이1... 양쪽 하나만 만족해도 다 나오는 쿼리인데요.
딸기반도 나오고 mb_7 이 1 인 회원도 둘다 리스트에 나오게 하는 거에요...
그리고 검색에 조건을 넣어서 한 회원만 나오게 해야하는데
회원과 함께 mb_7이 1인 회원까지 모두 검색 리스트에 나와서요...
그누 회원관리 창에 위와 같이 두조건이 맞는 회원들이 보입니다.
그런데 회원관리 창에서 회원이름을 적고 검색을 눌렀을때 한 회원만 나와야 하는데
그 회원 포함 mb_7 이 1로 선택된 모든 회원이 보이게 됩니다...ㅠㅠ
그래서 mb_7 이 1인 모든 회원이 나오는게 아니라
mb_1이 딸기반 또는(or) mb_7이 1인 회원이 리스트에 나오면
그 회원중에 화면 검색어 란에 입력된 값과 동일한 회원 한명만 나오게 하려는 겁니다...
감사합니다...
select * from g4_member where (1) and (mb_name='이름' and mb_level<=3 and mb_1='딸기반' or mb_7='1' )
select * from g4_member where mb_name='이름' and mb_level<=3 and mb_1='딸기반' or mb_7='1'
select * from g4_member where (mb_name='이름' and mb_level<=3 and mb_1='딸기반') or mb_7='1'
연산자 우선순위로 정리하면 쿼리는 위처럼 정리되지요.
마지막 쿼리보시면 mb_7=1인 모든 회원이거나 검색한 회원이면서 딸기반인 회원이 나오는게 현재 쿼리네요
select * from g4_member where mb_name='이름' and mb_level<=3 and (mb_1='딸기반' or mb_7='1')
이렇게 된다면 이름으로 검색한 회원이고 mb_1=딸기반 이거나 mb_7=1 어느 한쪽을 만족하는 회원만 나오는 이걸 원하시는건가요??
$sql_search .= " and mb_level <= '$member[mb_level]' ";
$sql_search .= " and mb_1 = '딸기반' "; // 소속만 나타나게)
$sql_search .= " or mb_7 = '1' "; // 소속만 나타나게)
결론은
if ($is_admin != 'super')
$sql_search .= " and mb_level <= '$member[mb_level]' ";
$sql_search .= " and (mb_1 = '딸기반' or mb_7 = '1') "; // 어느 한쪽이라도 소속을 만족하는 경우라면 나타나게