월별 포인트 랭킹 순위를 사용하려고 합니다.
4버전에서 스킨을 찾아서 올려봤는데 잘 안되네요.
회원아이디와 총포인트 순위는 잘 나오는데요.
12월에 해당하는 붉은색 월별 포인트가 전부 0으로 나옵니다.
<?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개
$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개
관리자만 10레벨이 아니고 다른 회원도 10레벨이 존재한다면 이런 식으로 조건을 하나 더 추가해보시고요.
AND A.mb_id != 'admin'
답변을 작성하려면 로그인이 필요합니다.
제가 추가한부분 제거하고 부등호 바꿔주니 정상적으로 나오네요 ^^