테스트 사이트 - 개발 중인 베타 버전입니다

포인트 랭킹관련 채택완료

김마린2 3년 전 조회 2,228

안녕하세요

 

https://gnustudy.com/bbs/board.php?bo_table=gnu_pds&wr_id=8&sfl=wr_subject%7C%7Cwr_content&stx=%EB%9E%AD%ED%82%B9+%EC%88%9C%EC%9C%84&sop=and

 

해당 php 파일로 활용하려고 하는데요 아래 이미지 처럼 어떤 아이디로 로그인해서 봐도

순위가 468위로 표기되는데요 상단 sql 조회 부분이 문제인건지 확인 부탁드리겠습니다

 

 

 

 

</strong></p>

<p><?php</p>

<p>include_once("./_common.php");</p>

<p>$g5['title'] = '회원 포인트 랭킹';</p>

<p>include_once(G5_THEME_PATH.'/head.php');</p>

<p>?></p>

<p><style type="text/css"></p>

<p>#po_rank {position:relative;margin:0 auto;width:100%}</p>

<p>#po_rank h2 {background:#f7f7f7;border:1px solid #d6d6d6;padding:14px 10px;font-size:12px;color:#4c4e4d}</p>

<p>#po_rank .my_rank {position:absolute;top:16px;right:10px;color:#666666;font-size:11px}</p>

<p>#po_rank .my_rank strong {color:#ff6600}</p>

<p>#po_rank .tbl_rank {margin:5px 0 20px}</p>

<p>#po_rank .tbl_rank table {width:100%;border-collapse:collapse;border-spacing:0}</p>

<p>#po_rank .tbl_rank caption {padding:0;font-size:0;line-height:0;overflow:hidden}</p>

<p>#po_rank .tbl_rank thead th {height:30px;line-height:30px;border-bottom:1px solid #129d82;background:#f4f4f4;color:#383838;font-size:11px;font-weight:normal;text-align:center}</p>

<p>#po_rank .tbl_rank .th_point {text-align:right;padding-right:10px}</p>

<p>#po_rank .tbl_rank td {border-top:1px solid #eceff3;border-bottom:1px solid #eceff3;line-height:23px;word-break:break-all}</p>

<p>#po_rank .tbl_rank tr:hover{background:#f8f8f8}</p>

<p>#po_rank .tbl_rank tr:first-child{background:#ecf7f8}</p>

<p>#po_rank .tbl_rank a {}</p>

<p>#po_rank .td_prank {width:30px;text-align:center;color:#ffffff}</p>

<p>#po_rank .td_pname {text-align:left;padding-left:5px}</p>

<p>#po_rank .td_joindate {width:120px;text-align:center;color:#b1b1b1}</p>

<p>#po_rank .td_plevel {width:25px;text-align:center}</p>

<p>#po_rank .td_point {width:70px;text-align:right;padding-right:10px;color:#d41d4b;font-family:verdana;font-size:10px;font-weight:bold}</p>

<p>#po_rank .rank_num {position:relative;margin:4px 0}</p>

<p>#po_rank .rank_num .rank_bg{display:inline-block;width:21px;line-height:22px;font-size:11px;text-align:center;color:#fff;text-indent:-1px}</p>

<p></style></p>

<p> </p>

<p><div id="po_rank"></p>

<p><h2>회원 포인트 랭킹 TOP-100</h2></p>

<p><div class="my_rank"></p>

<p><?php</p>

<p>$sql_common = " and mb_id != '{$config['cf_admin']}' ";</p>

<p>if ($member['mb_id']) {</p>

<p>    $sql = " select count(mb_id) as cnt from {$g5['member_table']} where (1) {$sql_common} order by mb_point desc ";</p>

<p>    $row = sql_fetch($sql);</p>

<p>    echo "{$member['mb_nick']} 님의 포인트는 <strong>".number_format($member['mb_point'])."점</strong>, 순위는 <strong>".number_format($row['cnt'] + 1)."등</strong> 입니다";</p>

<p>}</p>

<p>?></p>

<p></div></p>

<p><div class="tbl_rank"></p>

<p><table></p>

<p><caption>포인트 랭킹</caption></p>

<p><thead></p>

<p><tr></p>

<p>    <th>순위</th></p>

<p>    <th>닉네임</th></p>

<p>    <th>가입일</th></p>

<p>    <th>레벨</th></p>

<p>    <th class="th_point">포인트</th></p>

<p></tr></p>

<p></thead></p>

<p><tbody></p>

<p><?php</p>

<p>$rank_rows = 50; //출력 수</p>

<p>$sql = " select * from {$g5['member_table']} where (1) {$sql_common} order by mb_point desc, mb_today_login desc limit {$rank_rows} ";</p>

<p>$result = sql_query($sql);</p>

<p> </p>

<p>for ($i=0; $row=sql_fetch_array($result); $i++) {</p>

<p>$rank = number_format($i + 1);</p>

<p>//$name = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);</p>

<p>$name = $row['mb_nick'];</p>

<p>$level = $row['mb_level'];</p>

<p>$joindate = date("y.m.d", strtotime($row['mb_datetime']));</p>

<p>$point = number_format($row['mb_point']);</p>

<p> </p>

<p>if ($rank == 1) {</p>

<p>$bg = '#da0000';</p>

<p>} else if ($rank == 2) {</p>

<p>$bg = '#fdb800';</p>

<p>} else if ($rank <= 5) {</p>

<p>$bg = '#657bc8';</p>

<p>} else {</p>

<p>$bg = '#b3b8c0';</p>

<p>}</p>

<p>?></p>

<p><tr></p>

<p>    <td class="td_prank"><div class="rank_num"><span class="rank_bg" style="background:<?php echo $bg ?>"><?php echo $rank; ?></span></div></td></p>

<p>    <td class="td_pname"><?php echo $name; ?></td></p>

<p>    <td class="td_joindate"><?php echo $joindate; ?></td></p>

<p>    <td class="td_plevel"><?php echo $level; ?></td></p>

<p>    <td class="td_point"><?php echo $point; ?></td></p>

<p></tr></p>

<p><?php } ?></p>

<p></tbody></p>

<p></table></p>

<p></div></p>

<p></div></p>

<p><?php</p>

<p>include_once(G5_THEME_PATH.'/tail.php');</p>

<p>?></p>

<p><strong>

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

답변 1개

채택된 답변
+20 포인트
Dessi
3년 전
$sql = " select count(mb_id) as cnt from {$g5['member_table']} where (1) {$sql_common} order by mb_point desc ";
를 아래로 수정하시고 
$sql = " select count(mb_id) as cnt from {$g5['member_table']} where (1) {$sql_common} and mb_point >= '{$member['mb_point']}' order by mb_point desc ";
number_format($row['cnt']) +1을 빼보세요.
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

김마린2
3년 전
감사합니다:)

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

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

로그인