SIR 포인트 순위 프로그램 첨부합니다. > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

SIR 포인트 순위 프로그램 첨부합니다. 정보

SIR 포인트 순위 프로그램 첨부합니다.

첨부파일

point_rank.php (2.3K) 340회 다운로드 2005-07-01 10:29:05

본문

저희 회사 홈페이지에서 사용하는 포인트 순위 프로그램입니다.

<?
include_once("./_common.php");

define("_CO_POINT_RANK_", TRUE);

$html_title = "포인트순위";
$g4[title] = "" . $html_title;
include_once("./_head.php");

echo "<script language=\"javascript\" src=\"$g4[path]/js/sideview.js\"></script>\n";
?>

<table width=710 align=center>
<tr><td valign=top colspan=2 class=lh>
<?
if ($member[mb_id])
{
    $sql = " select count(mb_id) as cnt from $g4[member_table]
              where mb_point >= '$member[mb_point]' order by mb_point desc ";
    $row = sql_fetch($sql);
    echo "<br>&middot; 현재 회원님의 포인트 순위는 대략(?) <B>".number_format($row[cnt])."등</B> 입니다.";
}

$sql = " select sum(mb_point) as sum_point from $g4[member_table]";
$row = sql_fetch($sql);
$sum_point = $row[sum_point];
echo "<br>&middot; 전체 포인트 : <B>".number_format($sum_point) . "점</b><br><br>";

echo "</td></tr><tr><td valign=top width=50%>";

$sql = " select count(*) as cnt from $g4[member_table]";
$row = sql_fetch($sql);
$total_count = $row[cnt];

$rows = 50;
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if ($page == "") { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

$mod = 25;

$sql = " select * from $g4[member_table]
          order by mb_point desc, mb_today_login desc
          limit $from_record, $rows ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
    if ($i && $i%$mod==0)
        echo "</td><td valign=top>";

    $rank = (($page - 1) * $rows) + $i + 1;

    $name = get_sideview($row[mb_id], $row[mb_nick], $row[mb_email], $row[mb_homepage]);
    $point = number_format($row[mb_point]);
    echo "<table width=98% cellpadding=0 align=center class=box border=0><tr>";
    echo "<td height=30>$rank. $name</td>";
    echo "<td align=right><font color=777777>{$point}점</font></td>";
    echo "</tr></table>";
    echo "<table width=100%><tr><td></td></tr></table>";
}
?>
</td></tr>
</table>

<?
$page = get_paging($config[cf_write_pages], $page, $total_page, "?$qstr&page=");
echo "<p><table width=100% cellpadding=0 cellspacing=0><tr><td align=center>$page</td></tr></table><br><br>";

include_once("./_tail.php");
?>
추천
1

댓글 20개

관리자님...감사합니다
말탄개미님의 질문과 나스카님의 답변, 그리고 루트님의 추가답변
마지막으로 바세린님의 추가 질문및 답변.......이 게시글 한방으로 원하는 모든 내용이 들어 있군요.... 모두 감사합니다^^
아 해결했습니다.

마지막 부분쯤에....

for ($i=0; $row=sql_fetch_array($result); $i++)
{
    if ($i && $i%$mod==0)
        echo "</td><td valign=top>";

    $rank = (($page - 1) * $rows) + $i + 1;

    $name = get_sideview($row[mb_id], $row[mb_name], $row[mb_email], $row[mb_homepage]);
(바로 위의  $row[mb_nick]을 $row[mb_name]으로 바꿔주면 실명으로 나오는군요.)
    $point = number_format($row[mb_point]);
    echo "<table width=98% cellpadding=0 align=center class=box border=0><tr>";
    echo "<td height=30>$rank. $name</td>";
    echo "<td align=right><font color=777777>{$point}점</font></td>";
    echo "</tr></table>";
    echo "<table width=100%><tr><td></td></tr></table>";
}
아! 제가 필요한 것이 여기 있었군요. 감사합니다.
하나 질문을 하면....위 소스를 사용하면 회원 별명이 출력되는데 실명으로 출력하려면 어떻게 해야 하는지요?
근데... 회원의 정확한 순위는 뽑을 수 없는 건가요?
가능한거 같은데... 대략순위가 나오네요....
제가 운영하는 사이트의 경우 제가 분명 1위인데 -_-;
대략 27위로 나옵니다.. ㅜㅜ
//30 ~ 35라인 정도

if ($member[mb_id])
{
    $sql = " select count(mb_id) as cnt from $g4[member_table]
              where mb_id <> '관리자아이디' and mb_point >= '$member[mb_point]' order by mb_point desc ";
    $row = sql_fetch($sql);
    echo "<br>&middot; 현재 회원님의 포인트 순위는 대략(?) <B>".number_format($row[cnt])."등</B> 입니다.";
}


//65 ~ 70라인 정도
$sql = " select * from $g4[member_table]

          where mb_id <> '관리자아이디'
          order by mb_point desc, mb_today_login desc

          limit $from_record, $rows ";
저도 관리자님께 한방먹고 알게된거죠.ㅎㅎㅎ

"관리자에게 메일/쪽지 보내기" 팁 올릴때 관리자를 입력해서 하도록 올렸더니.
    http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=131
관리자님께서 곧바로 자주하는 질문에다가 디폴트를 불러서 처리하는것을 올리시더군요.
    http://www.sir.co.kr/bbs/board.php?bo_table=g4_faq&wr_id=7
그런데 이런 문제는 어떻게 해야 하는 걸까요?

위에서
where mb_id <> '관리자아이디'
라는 것은 관리자가 아니라면... 순위에 나타내라... 뭐 그런 거 같은데...

만약 10등급 관리자가 아니라 같은 그룹의 8등급인 특정 아이디도 빼려면....??? 어떻게 하는 게 좋을까요?
where mb_id <> '관리자아이디, 빼려는 다른 아이디'
이렇게 하는 건 가능한가요?
전체 3,309 |RSS
그누4 팁자료실 내용 검색

회원로그인

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