포인트 랭킹 쿼리문 질문드립니다.

포인트 랭킹 쿼리문 질문드립니다.

QA

포인트 랭킹 쿼리문 질문드립니다.

본문


$rank_rows = 100; //출력 수
$sql = " select * from {$g5['member_table']} where (1) {$sql_common} order by mb_point desc, mb_today_login desc limit {$rank_rows} ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$rank = number_format($i + 1);
//$name = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$name = $row['mb_nick'];
$level = $row['mb_level'];
$joindate = date("y.m.d", strtotime($row['mb_datetime']));
$point = number_format($row['mb_point']);

 

포인트 랭킹 순서입니다.

 

여기에서 포인트가 있는 회원만 뽑고 싶은데 어떻게 해야 할까요? (관리자 제외)

rank_rows도 그에 맞춰서 나오게 하고 싶습니다.

이 질문에 댓글 쓰기 :

답변 3



$rank_rows = 100; //출력 수
$sql = " select * from {$g5['member_table']} where (1) and mb_point > 0 {$sql_common} order by mb_point desc, mb_today_login desc limit {$rank_rows} ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$rank = number_format($i + 1);
//$name = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$name = $row['mb_nick'];
$level = $row['mb_level'];
$joindate = date("y.m.d", strtotime($row['mb_datetime']));
$point = number_format($row['mb_point']);

- 필요한 필드만 나열하면 좋습니다.

- 관리자 고유번호가 1이 아니면 mb_no>1 대신 다른 조건 넣으면 됩니다. 예) mb_level<10


$rank_rows = 10;
$sql = "SELECT mb_no, mb_id, mb_nick, mb_level, mb_point, mb_email, mb_homepage, mb_datetime
FROM {$g5['member_table']} WHERE mb_no>1 AND mb_point>0 ORDER BY mb_point DESC LIMIT {$rank_rows}";
$result = sql_query($sql);
$rows = sql_num_rows($result);
$rank = 1;
while ( $row=sql_fetch_array($result) ) {
    echo $rank; // 순위 1부터 순차 증가
    echo $row['mb_nick'];
    echo str_replace('-', '.', substr($row['mb_datetime'], 0, 10)); // strtotime(), date() 사용보다 빠름
    echo number_format($row['mb_point']);
    $rank++; // 반복할 때마다 마지막에 1 증가
}

top 10 이런 식으로 뽑는다면

별도 테이블을 만드는 것이 좋습니다.

포인트 업데이트 할 때마다 이 테이블도 업데이트하는 것이 효율적입니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,663 | RSS
QA 내용 검색

회원로그인

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