sql 필터링 질문드립니다.
본문
<?php
$sub_menu = '200911';
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
$g5['title'] = '박람회문의목록';
include_once (G5_ADMIN_PATH.'/admin.head.php');
$exhibitionList = array();
$exhibitionData = array();
$sql = "select e.e_no, e.e_name, e_data from {$g5['exhibition_table']} e left join {$g5['member_table']} m on (e.e_mb_no=m.mb_no) ";
$sql_search = ' where (1) ';
if ($is_admin != 'super') {
if($member['mb_level']==9) $sql_search .= " and e.e_mb_no = '{$member['mb_no']}' ";
if($member['mb_level']<9) $sql_search .= " and e.e_mb_no = '{$member['mb_10']}' and e.e_no= '{$member['mb_9']}'";
}
$result = sql_query($sql);
for ($i = 0; $row = sql_fetch_array($result); $i++) $exhibitionList[] = $row;
foreach ( $exhibition_counsel_data_list as $k=>$v) {
$exhibitionData['is_use'][$k] = 1;
}
if($subjectivity) {
foreach ( $exhibitionList as $k=>$v) {
if($v['e_no']==$subjectivity) {
$exhibitionData = unserialize($v['e_data']);
}
}
}
$sql_common = " from {$g5['exhibition_counsel_table']} ec left join {$g5['exhibition_table']} e on (ec.e_no=e.e_no) left join {$g5['member_table']} m on (e.e_mb_no=m.mb_no) ";
$sql_search = ' where (1) ';
if ($is_admin != 'super') {
if($member['mb_level']==9) $sql_search .= " and m.mb_no = '{$member['mb_no']}' ";
if($member['mb_level']<9) $sql_search .= " and m.mb_no = '{$member['mb_10']}' and ec.e_no= '{$member['mb_9']}'";
}
if($subjectivity) $sql_search .= " and e.e_no = '{$subjectivity}' ";
// 테이블의 전체 레코드수만 얻음
$sql = " select count(*) as cnt " . $sql_common . $sql_search;
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = "select ec.*, e.e_name, m.mb_name $sql_common $sql_search order by ec_regdate DESC limit $from_record, {$config['cf_page_rows']} ";
$result = sql_query($sql);
$qstr .= "&subjectivity=$subjectivity";
?>
상담신청하기 폼을 통해 전송된 데이터를 출력하는 곳의 소스입니다.
전체 리스트에서 관리자 등급에 따라 노출되는 항목을 다르게 하고싶은데 어떻게 해야할까요?
e_date 라는 컬럼에
A,B,C 세개의 데이터가 들어있습니다.
최고관리자에겐 A,B 데이터만 보여주고 abc라는 관리자에게는 C데이터만 보여주고싶습니다.
!-->답변 3
당장에 쿼리로 읽어올때는 크게 중요하지않습니다.
저 쿼리를 html과 php를 혼용해서
출력하는데
그 코드에서 접속중인 아이디로 구분하여
분기처리하시면 됩니다.
회원들이 등급이 나뉘어져있어서
로그인한 계정에 따라
관리자 mb_level =10
abc mb_level = 9(예시로 9라고햇을때)
if($member['mb_level']=="10"){
echo $row['칼럼"];// a만 보여주기
}else if($member['mb_level']=="10"){
echo $row['칼럼"];// a만 보여주기
}else{
//기타 레벨 처리
}
회원을 구분하는게 핵심이것 같습니다.~
if($member['id']=="abc"){
abc인경우에 보여주기
}else if($member['id']=="다른id"){
다른id인경우
}
이런형태로 해보시겠어요?
답변을 작성하시기 전에 로그인 해주세요.