sql 필터링 질문드립니다.

sql 필터링 질문드립니다.

QA

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{

 //기타 레벨 처리

}

 

회원을 구분하는게 핵심이것 같습니다.~

 

 

답변 감사합니다. 제가 질문글을 좀 애매하게 작성한거같은데 글 수정이 안되네요 ㅜㅜ 최고관리자에겐 A,B 데이터가 들어있는 컬럼만 보여주고 abc라는 관리자에게는 C데이터가 들어있는 컬럼만 보여주고싶습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 59,609
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT