포인트랭킹에서 관리자를 제외하고 싶습니다.

포인트랭킹에서 관리자를 제외하고 싶습니다.

QA

포인트랭킹에서 관리자를 제외하고 싶습니다.

본문


<? 
function sh_point_ranking($기간 = "30", $랭킹명수 = "10", $가입얼마이후 = "30") {
global $g5, $config;
/*
필요한 변수 셋팅
$기간 = 30; // 최근 며칠간 포인트 적립을 구할것이냐.
$랭킹명수 = 10; // 몇명이나?
*/
$회원가입얼마이후 = mktime(0, 0, 0, date("m"), date("d")-$가입얼마이후, date("Y"));
$회원가입얼마이후 = date("Y-m-d H:i:s",$회원가입얼마이후);
$선택기간 = mktime(0, 0, 0, date("m")  , date("d")-$기간, date("Y"));
$선택기간 = date("Y-m-d H:i:s",$선택기간);
$sql =
	"SELECT a.s_point, a.mb_id, {$g5['member_table']}.mb_nick 
	 FROM (SELECT sum(po_point) as s_point, mb_id  FROM `g5_point` WHERE po_datetime >= '{$선택기간}' GROUP BY mb_id ORDER BY s_point DESC)a
	 LEFT JOIN {$g5['member_table']} using(mb_id) WHERE {$g5['member_table']}.mb_datetime <= '{$회원가입얼마이후}'  and {$g5['member_table']}.mb_id <> 'admin' LIMIT 0, {$랭킹명수}";
$result = sql_query($sql);
$temp_config = $config['cf_use_member_icon'];
unset($config['cf_use_member_icon']);
for ($i=1; $row=sql_fetch_array($result); $i++) {
	$랭킹배열[$i]['name'] = get_sideview($row['mb_id'], $row['mb_nick']);
	$랭킹배열[$i]['point'] = number_format($row['s_point']);
}
$config['cf_use_member_icon'] = $temp;
$랭킹배열[1]['class'] = ' class="best"';
$랭킹배열[2]['class'] = ' class="best"';
$랭킹배열[3]['class'] = ' class="best"';
?>
 
<script type="text/javascript" src="<?=$g5['path']?>/js/sideview.js"></script>
<style type="text/css">
/* UI Object */
.section_ol{position:relative;border:1px solid #ddd;background:#fff;font-size:12px;font-family:Tahoma, Geneva, sans-serif;line-height:normal;*zoom:1}
.section_ol a{color:#666;text-decoration:none}
.section_ol a:hover,
.section_ol a:active,
.section_ol a:focus{text-decoration:underline}
.section_ol em{font-style:normal}
.section_ol h2{margin:0;padding:10px 0 8px 13px;border-bottom:1px solid #ddd;font-size:12px;color:#333}
.section_ol h2 em{color:#cf3292}
.section_ol ol{margin:13px;padding:0;list-style:none}
.section_ol li{position:relative;margin:0 0 10px 0;*zoom:1}
.section_ol li:after{display:block;clear:both;content:""}
.section_ol li .ranking{display:inline-block;width:14px;height:11px;margin:0 5px 0 0;border-top:1px solid #fff;border-bottom:1px solid #d1d1d1;background:#d1d1d1;text-align:center;vertical-align:top;font:bold 10px Tahoma;color:#fff}
.section_ol li.best .ranking{border-bottom:1px solid #6e87a5;background:#6e87a5}
.section_ol li.best a{color:#7189a7}
.section_ol li .num{position:absolute;top:0;right:0;font-size:11px;color:#a8a8a8;white-space:nowrap}
.section_ol li.best .num{font-weight:bold;color:#7189a7}
.section_ol .more{position:absolute;top:10px;right:13px;font:11px Dotum, 돋움;text-decoration:none !important}
.section_ol .more span{margin:0 2px 0 0;font-weight:bold;font-size:16px;color:#d76ea9;vertical-align:middle}
/* //UI Object */
</style>
<!-- UI Object -->
<div class="section_ol">
	<h2>최근 <?=$기간?>일간 <em>포인트 랭킹</em></h2>
	<ol>
<? for ($i=1; $i <= $랭킹명수; $i++) { ?>
	<li <?=$랭킹배열[$i]['class']?>><span class="ranking"><?=$i?></span><?=$랭킹배열[$i]['name']?><span class="num"><?=$랭킹배열[$i]['point']?>점</span></li>
<? } ?>
	</ol>
	<!--span class="more"><?=$기간?>일간 누적</span-->
</div>
<!-- //UI Object -->
<?
} // end function
?>

 

어디를 바꿔줘야 하나요?

관리자가 자꾸 랭킹1등으로 출력이 되서요..

이 질문에 댓글 쓰기 :

답변 3

and {$g5['member_table']}.mb_id <> 'admin' 


위 부분이 관리자를 제외하는 코드입니다.

admin을 최고관리자 아이디로 변경하세요.

echo $sql;

쿼리문찍어보시고 해당 쿼리문 db툴에서 실행해보세요

쿼리상으로는 admin이라는 id를 가져오지 않도록 되어있는것 같습니다.

간단에게 한다면...

sql 절의 where 에 mb_level 이 10이 아닌사람만 가져오게 한다던지.

mb_id 를 적어서 아닌 사람만 가져온다든지...

쉅게 간다면요....

 

복잡하게 간다면, g5_config 테이블을 조인해서, 관리자 아이디를 가져와서, 해당하는 아이디를 제외하게 하면 되고요...

 

 

제가 검색하면서 where 부분도 많이 찾았는데, 제 코드에서 어딜 수정해야 하는지도 모르는 초보자라서요..ㅠㅠ
그래도 문제는 해결하였습니다!! 답변 감사해요..^^

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

회원로그인

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