채택완료

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

2016-01-02 (토) 17:48:26 3,316

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

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 

​

Copy
<?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 pointFROM  {$g5[member_table]} as ALEFT 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개 / 댓글 2개

채택된 답변
+20 포인트

$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 레벨보다 작은 레벨이라면?

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

답변에 대한 댓글 2개

2016-01-02 (토) 19:11:05
감사합니다.
제가 추가한부분 제거하고 부등호 바꿔주니 정상적으로 나오네요 ^^
혹시 관리자 제외 용의 목적이라면 원본에 있는 대로 부등호를 < 10 이렇게 해주면 될 겁니다.
관리자만 10레벨이 아니고 다른 회원도 10레벨이 존재한다면 이런 식으로 조건을 하나 더 추가해보시고요.
AND A.mb_id != 'admin'

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