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

우와.. 페이지 숫자가 너무 많이 나와요 ㅡ.ㅡ

· 15년 전 · 1503 · 2
포인트 랭킹 순위 스킨을 수정 중입니다.
포인트 랭킹을 그냥 하는 것이 아니라 레벨별로 포인트 랭킹을 표시하는 겁니다.
예를들면 4등급 회원들끼리만 포인트 순위로 표시하는 거죠.
이게 문제가 아니구....

하단 쪽에 구한 회원수를 가지고 페이징을 하려는데 그 레벨에 해당하는 회원만을 가지고 페이징하는 것이 아니라 전체 회원수를 가지고 페이징 표시가 되네요..
회원은 100명이구 한페이지당 15명 씩 표시되게 했거든요...
4등급 회원은 꼴랑 14명인데 페이지수가 7까지 나와요 ㅜ.ㅜ

어떻게 하면 등급회원만으로 페이징을 하는지요?
아래가 제가 수정 중인 소스입니다.


$member_level = "4"; // 레벨 지정하기
$sql = " select count(mb_id) as cnt from $g4[member_table] where mb_id not in ( '$config[cf_admin]') and mb_point >= '$member[mb_point]' order by mb_point desc "; // 운영자는 빼고 구하기
$row = sql_fetch($sql);
$sql = " select sum(mb_point) as sum_point from $g4[member_table]"; // 포인트 합
$sql = " select count(*) as cnt from $g4[member_table]"; // 회원 테이블에서 부르기
$row = sql_fetch($sql);
$total_count = $row[cnt]; // 전체 페이지 구하기
$rows = 15; // 15명씩 끊음
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page == "") { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$mod = 25; // 이건 뭐지?
$sql = " select * from $g4[member_table] where mb_level = $member_level order by mb_point desc limit $from_record, $rows "; // 위에서 지정했던 레벨만 골라냄
$result = sql_query($sql);
$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>"; // 페이지 표시


어디가 잘 못 된 거죠?
도움 주시기 위해서 읽어 주셔서 감사합니다. 꾸벅~

댓글 작성

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

로그인하기

댓글 2개

일단 위의 내용을 토대로 원하는 대로 데이터 출력이 안된다면..
질의를 잘못해서 그런겁니다..
위에 작성한 코드를 보아도 필요없는 코드들이 상당히 많네요...

정보가 부족합니다...
특정등급회원들에 대해 포인트 랭킹을 하시려고 하시는 건가요?

위에 적힌 코드를 사용하여 기술하겠습니다.

* 페이징 관련 설정 변수
$rows = 15;
if ($page == "") { $page = 1; }
$from_record = ($page - 1) * $rows;

* 질의에 사용할 변수
$member_level = "4";

* 질의문
$sql = "SELECT * FROM ".$g4['member_table']." WHERE mb_id not in ('".$config['cf_admin']."') ";
$sql .= " AND mb_level = '$member_level' ORDER BY mb_point DESC LIMIT $from_record ";

* 데이터 가져오기
$row = sql_fetch($sql);

$total_count = mysql_affected_rows(); //질의를 통해 검색된 데이터 수
$total_page = ceil($total_count / $rows); //전체페이지수
$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>";
제 질의에 문제가 있었습니다. 자체 해결하였습니다.
$sql = " select count(*) as cnt from $g4[member_table]"; 에서 원하는 레벨에 대한 where를 안 넣었더군요. ^^;
하지만 제 소스가 지저분한 것도 사실이고, 멋지군님이 코드를 효율적으로 사용하는 것에 대해서 많이 배웠습니다. 감사합니다.

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440