포인트 순위 .... '페이징'이 안됩니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

포인트 순위 .... '페이징'이 안됩니다. 정보

포인트 순위 .... '페이징'이 안됩니다.

본문

멍청하게...질문을 '자작프로그램'에 올리는 실수를 해서..다시 이곳에 올립니다. -_- ;;
죄송합니다.


[질문내용]

관리자님께서 자작프로그램에 등록해두신...'포인트순위' 프로그램과 관련해서 문의 드립니다.

제 홈페 맞게 약간 아래코드처럼 약간 수정해서 일단 설치를 했는데.... '페이징'이 표시가 되지를 않습니다. 회원이 약 200명정도인데...첫화면에 50명만 출력되고, 나머지는 표시가 되지도 않고
1페이지,2페이지....하는식으로 페이지표시가 되지를 않네요. -_-;;

$rows = 50 을 ... $row = 200 으로 바꿨더니 한화면에 모두 표시가 되면서 모양도 어색하고..
페이지당 50명 정도의 '회원&포인트'만 표시하고 싶은데
왜 페이징이 표시가 되질 않는지....아래 코드를 보시고 뭐가 문제인지 좀 도와주십시요.

p.s; 현재 등록되어있는 '포인트순위' 프로그램은 업그레이드버젼에 바로 적용하기에는 조금
      문제가 있어 보이는듯 하네요.. -_- ;;



[포인트순위 소스코드]



<?
// 상대 경로
$g4_path = "../gnuboard";;
include_once("$g4_path/common.php");
include_once("$g4[path]/lib/latest.lib.php");

define("_CO_POINT_RANK_", TRUE);

$g4[title] = "";
$html_title ="포인트순위"; // 문서타이틀
include_once("head.php");

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

<table align=center width=100% cellpadding=0 cellspacing=5 border=0 style='border=1px solid #cccccc'>
<tr><td valign=top colspan=2 class=lh>

<?
//-- -----{위 수정} 최고관리자는 안보이게 처러 "$config[cf_admin]" <-- 관리자 아이디를 뜻함.

if ($member[mb_id])
{
    $sql = " select count(mb_id) as cnt from $g4[member_table]
              where mb_id <> '$config[cf_admin]' and mb_point >= '$member[mb_point]' order by mb_point desc ";
    $row = sql_fetch($sql);
    echo "&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>";

?>
</td></tr>
</table>
<br>


<table align=center width=100% cellpadding=0 cellspacing=0 border=0>
<tr><td valign=top style='line-height:150%;'>

<? // 회원별 순위및 포인트내역

$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]
          where mb_id <> '$config[cf_admin]'
          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 style='line-height:150%;'>";

    $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 align=center width=100% class=box cellpadding=4 cellspacing=0 border=0 style='border=1px solid #cccccc'>";
echo "<tr height=30>";
    echo "<td width='100'>$rank. $name</td>";
    echo "<td width='' 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"); ?>
  • 복사

댓글 전체

위글에 대해서 sjsjin 님께서 주신 리필내용입니다.
리플감사드립니다..자작에 올렸던글에 대한 리플을 이쪽으로 대신 가져왔습니다. -_- ;;

[sjsjin님의 리플내용]
--------------------------------------------------------------------------------------------------------------------------------
$page = get_paging($config[cf_write_pages], $page, $total_page, "?$qstr&page=");

$page = get_paging($config[cf_write_pages], $page, $total_page, "./?doc=$doc&page=");
---------------------------------------------------------------------------------------------------------------------------------


위처럼 하라고 하셨는데...

리플주신대로 적용을 해봤는데....잘되지를 않는거 같습니다. -_- ;;
여전히 페이지 숫자들이이 나타나지를 않네요.

그리고 ..  "./?doc=$doc&page=");    <--- g4에서는 이런형태는 사용을 안하는거 아닌지요.

페이지를 처리하는 함수가 common.php 파일인거 같은데..그와 관계가 있는건 아닌지...
아 참, g3/g4 를 착각했습니다..
아래처럼 수정하십시오.

$page = get_paging($config[cf_write_pages], $page, $total_page, "./파일명?page=");

또는 포인트순위 파일이 bbs/ 디렉토리에 있다면

$page = get_paging($config[cf_write_pages], $page, $total_page, "?page=");

* 만약 포인트순위 페이지내에서 검색/정렬 등의 변수를 사용한다면 물음표(?) 뒤에 변수들을 넣어주십시오.
그리고
아래 값이 없군요...위 내용에는

$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산

위에서 $total_count 값이 없네요???
전체 목록의 수를 구해서 페이징을 하는데 위 값이 없으니 페이징이 안됩니다.
sjsjin 님...리플 감사합니다....(이제서야 글을 확인해서 늦게 인사드립니다. 죄송합니다.) -_- ;;

$page = get_paging($config[cf_write_pages], $page, $total_page, "./파일명?page=");
일단 위 부분은 말씀해주신대로 '파일명'을 적어줬습니다.

그리고 지적해주신대로 '$total_count'값을 찾아봤는데....
기존 소스를 그대로 적용을 했는데 그곳에서도 보이지를 않고
또 $total_count 값이 어디서 오는건지 잘 모르겠습니다.

말씀하신대로라면...전체회원수(?)가 $total_count 값이 되어야 하는거 같은데...
이건 그럼 어떤식으로 가져와야 하는지요....(죄송합니다..또 질문을 하게 되는군요..)

그냥 임의로 $totla_count = 1500;  <--- 이런식으로 하나를 끼워넣어봤지만..그래도 변화가 없습니다.

말씀하신거 처럼...위 문제로 인해 여전히 현재로써는 페이징이 안되네요.
그냥 자작프로그램에 있는걸 그대로 적용한건데.....혹 보시게 되면 조금만 더 도와주십시요..

http://sir.co.kr/bbs/board.php?bo_table=self_program&wr_id=1484

부탁드리겠습니다.

p.s; 혹 다른분이라도 해결방법을 아시면 리플을 좀 부탁드리겠습니다. 꾸벅~
p.s; 기존의 프로그램에 전체회원수를 가져오는 sql문이 빠진거 같은데....근데..아무말 없이 사용들을 하시고 계시니...제가 뭔가 잘못한거 같은데 뭔지를 몰겠군요..정말..
© SIRSOFT
현재 페이지 제일 처음으로