월별 포인트 랭킹 순위를 사용하려고 합니다.

월별 포인트 랭킹 순위를 사용하려고 합니다.

QA

월별 포인트 랭킹 순위를 사용하려고 합니다.

답변 1

본문

월별 포인트 랭킹 순위를 사용하려고 합니다. 

4버전에서 스킨을 찾아서 올려봤는데 잘 안되네요. 

 

http://sir.co.kr/g4_skin/60074?sfl=wr_subject&stx=%ED%8F%AC%EC%9D%B8%ED%8A%B8+%EC%88%9C%EC%9C%84&page=10 

 

회원아이디와 총포인트 순위는 잘 나오는데요. 

12월에 해당하는 붉은색 별 포인트가 전부 0으로 나옵니다. 

c76b57b18d888648ddfe33d190c8f03b_1451724643_5646.png 

 

 
<?
include_once("./_common.php");
$g5[title] = "월별 포인트 적립 순위";
include_once(G5_PATH.'/head.sub.php');
//echo "<script language=\"javascript\" src=\".G5_PATH./js/sideview.js\"></script>\n";
 
$nowdate = date("Y-m",time()); // 이번달
$sYear = substr($nowdate, 0, 4)."년";
$sMonth = substr($nowdate,5,2)."월";
 
$sql = "SELECT * , COUNT(B.mb_id ) AS count, SUM( B.po_point ) AS point
FROM  {$g5[member_table]} as A
LEFT JOIN {$g5[point_table]} as B ON ( A.mb_id = B.mb_id AND A.mb_level < 1 AND A.mb_point >= 0) where date_format(B.po_datetime,'%Y-%m') = '$nowdate' group by B.mb_id order by point desc LIMIT 0, 10 ";
 
$result = sql_query($sql);
?>
<style type="text/css">
	.title_font {font-size:9pt;color:#ffffff;}
</style>
<table  width="330" cellpadding=0 cellspacing=0> 
<tr>
	<td align="center" style="padding:5px;color:#8b5aad;"><strong><?=$sYear?> <?=$sMonth?> 적립 포인트 실시간 순위(1위~10위)</strong>	</td>
</tr>
<tr>	
	<td valign="top">
		<table border="0" cellpadding="0" cellspacing="0">
			<tr bgcolor="#8b5aad">
				<td width="5"><img src="<?php echo G5_URL?>/img/rank/l_img.gif" border="0"></td>
				<td width="40" height="52" align="center" class="title_font">순위</td>
				<td width="120" class="title_font" align="center">닉네임</td>
				<td width="80" class="title_font" align="right" style="padding-right:10px;">1월 적립<br> 포인트</td>
				<td width="80" class="title_font" align="right" style="padding-right:10px;">총 적립<br> 포인트</td>
				<td width="5"><img src="<?php echo G5_URL?>/img/rank/r_img.gif" border="0"></td>
			</tr>
			<?
$sql_common = " and mb_id != '{$config[cf_admin]}' ";
$rank_rows = 10; //출력 수
$sql = " select * from {$g5[member_table]} where mb_point > '{$row[mb_point]}' {$sql_common} order by mb_point desc, mb_today_login desc limit {$rank_rows} ";
$result = sql_query($sql);
            for ($i=1; $row=sql_fetch_array($result); $i++)
 
			{ 
			$name = get_sideview($row[mb_id], $row[mb_nick], $row[mb_email], $row[mb_homepage]); 
			$point = number_format($row[point]);
			$mb_point= number_format($row[mb_point]);
 
			?>
 
 
 
			<tr>
				<td height="24"></td>
				<td><img src="<?php echo G5_URL?>/img/rank/<?=$i?>.gif" border="0" align=absmiddle> <?if ($i<=5) echo "<img src=".G5_URL."/img/rank/".$i."_icon.gif align=absmiddle>";?></td>
				<td align="center"><?=$name?></td>
				<td align="right" style="padding-right:10px;color:#FF0000;"><?=$point?></td>
				<td align="right" style="padding-right:10px;"><?=$mb_point?></td>
				<td></td>
			</tr>
			<tr>
				<td colspan="6" bgcolor="#d6d6d6" height="1"></td>
			</tr>
			<?}?>
		</table>
	</td>	
</tr>
</table> 
 

 

$row[point] 이부분인거 같은데 이걸 어떻게 고쳐야 하나요? 

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 1

$sql_common = " and mb_id != '{$config[cf_admin]}' ";

$rank_rows = 10; //출력 수

$sql = " select * from {$g5[member_table]} where mb_point > '{$row[mb_point]}' {$sql_common} order by mb_point desc, mb_today_login desc limit {$rank_rows} ";

$result = sql_query($sql);

 

윗부분은 왜 넣으신 건가요? 저걸 삭제해야 정상 출력 될 겁니다.

월별 랭킹의 목적이라면 이건 필요 없는 부분인데요. 원본에도 없는 부분이고..

그리고 첫 sql 에서 A.mb_level < 1 이렇게 되어 있던데 1 레벨보다 작은 레벨이라면?

부등호가 반대로 돼야 하지 않을까요?

혹시 관리자 제외 용의 목적이라면 원본에 있는 대로 부등호를 < 10 이렇게 해주면 될 겁니다.
관리자만 10레벨이 아니고 다른 회원도 10레벨이 존재한다면 이런 식으로 조건을 하나 더 추가해보시고요.
AND A.mb_id != 'admin'

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 104
© SIRSOFT
현재 페이지 제일 처음으로