채택완료

sql 필터링 질문드립니다.

Copy
<?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개 / 댓글 1개

채택된 답변
+20 포인트

당장에 쿼리로 읽어올때는 크게 중요하지않습니다.

저 쿼리를 html과 php를 혼용해서

출력하는데

그 코드에서 접속중인 아이디로 구분하여

분기처리하시면 됩니다.

2024-03-15 (금) 16:26:37

if($member['id']=="abc"){

   abc인경우에 보여주기

}else if($member['id']=="다른id"){

  다른id인경우 

}

이런형태로 해보시겠어요? 

2024-03-15 (금) 15:50:31

회원들이 등급이 나뉘어져있어서

로그인한 계정에 따라

관리자 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{

 //기타 레벨 처리

}

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

답변에 대한 댓글 1개

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

답변을 작성하려면 로그인이 필요합니다.