해당 그룹에 접근 권한이 있는 회원에게만 그룹명 노출하고 싶습니다.

해당 그룹에 접근 권한이 있는 회원에게만 그룹명 노출하고 싶습니다.

QA

해당 그룹에 접근 권한이 있는 회원에게만 그룹명 노출하고 싶습니다.

본문

현재 그룹명이 모두 노출되고 있는데, 

회원에게 접근 권한이 있는 그룹명만 노출하고 싶습니다.

소스 좀 알려주세요.


게시판의 레벨이 안되면 노출이 안되게 하는 것은  bo_list_level <= '$member[mb_level]' 이렇게 하면 되는데...

그룹은 조금 어렵네요.

$sql 구문을 한 번 더 불러야 될 것 같은데... 머리속에 맴돌기만 하고 떠오르지 않네요.



			
<?php
			$sql = " select gr_id, gr_subject from $g4[group_table] where gr_display = 'Y' ";
			$result = sql_query($sql);
			for ($i=0; $row=sql_fetch_array($result); $i++) {
				$bcount = "";
				$row2 = sql_fetch("  select sum(bo_count_write) as cnt from $g4[board_table] 
					  where gr_id = '{$row[gr_id]}' and bo_list_level <= '$member[mb_level]' and bo_display = 'Y' ");
				if ($row2[cnt]) { 
					$bcount = " ($row2[cnt])";
				}  
				?>
					<li class="<?php echo ($i>3?"secound":"");?> <?php echo ($group["gr_id"]==$row["gr_id"]?"active":"");?>">
						<a href="<?php echo $g4['url']?>/bbs/group.php?gr_id=<?php echo $row[gr_id];?>" class="link_menu"><?php echo $row[gr_subject]; ?></a>
					</li>
				<?php
			}
		?>
  

 

 

소스를 못 짜겠어요. 

고수님들의 도움을 요청합니다.

 

g4_group 테이블에서 gr_id 와 gr_subject, gr_use_access 를 뽑고

gr_use_access == '1' 이면 

g4_group_member 테이블에서 해당 gr_id의 값에 있는 mb_id 값을 뽑아서

mb_id 값이 현재 접속사인 $member[mb_id]와 같으면 

해당 그룹의 아이디인 gr_id에 해당하는 gr_subject 값을 노출 ... 

그렇지 않으면 건너 뜀...

 

이게 정말 어렵네요.

이 질문에 댓글 쓰기 :

답변 1

 

위에 제시하신 소스에 적용하시려는 것인가요?

그렇다면 아래처럼 $row3 부분의 쿼리와 조건문 추가해 보세요.


<?php
   $sql = " select gr_id, gr_subject from $g4['group_table'] where gr_display = 'Y' ";
   $result = sql_query($sql);
   for ($i=0; $row=sql_fetch_array($result); $i++) {
      $bcount = "";
      $row2 = sql_fetch("  select sum(bo_count_write) as cnt from $g4['board_table']
         where gr_id = '{$row['gr_id']}' and bo_list_level <= '$member['mb_level']' and bo_display = 'Y' ");
      if ($row2['cnt']) {
         $bcount = " ($row2['cnt'])";
      }
 
      $row3 = sql_fetch(" select count(*) as cnt from {$g4['group_member_table']} where gr_id = '{$row['gr_id']}' and mb_id = '{$member['mb_id']}' "); //추가한 쿼리
      if ($row3['cnt']) { //추가한 조건문
      ?>
      <li class="<?php echo ($i>3?"secound":"");?> <?php echo ($group['gr_id']==$row['gr_id']?"active":"");?>">
         <a href="<?php echo $g4['url']?>/bbs/group.php?gr_id=<?php echo $row['gr_id'];?>" class="link_menu"><?php echo $row['gr_subject']; ?></a>
      </li>
      <?php
      } //추가한 조건영역 끝
   }
?>
 

이렇게 해봤는데 안되네요.
오히려 노출시키면 안되는 그룹메뉴만 하나 나와요.

혹시,,,,

$sql = " select * from $g4[group_member_table]
        where gr_id = '$group[gr_id]' and mb_id = '$member[mb_id]' ";
$row = sql_fetch($sql);

이런 구문을 처음에 넣고 시작하면 될 것 같은데...
도와주실 분 없으신가요?

제가 알려드린 쿼리와 조건문은 g5 환경에서 테스트 확인하고 게시한 내용입니다.
그룹관리 환경은 g4 도 g5와 같은 형식의 코드를 쓰기 때문에 안 될 이유가 없다고 생각합니다.
혹시, 안 되는 이유에 다른 변수가 있어서 그런 것은 아닌지 살펴보심이....
예를 들어 새로 추가된 gr_display 등등...

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

회원로그인

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