[재질문].. 포인트순위 .. '페이징'과 관련.... 정보
[재질문].. 포인트순위 .. '페이징'과 관련....본문
비슷한 글을 다시 올려 죄송합니다..근데..아무리해도 막히고 이해가 안되는 부분이 있어서
다시 글을 올립니다. (리플도움주신 'sjsjin'님께 감사드립니다.)
도움을 받아서 이래저래 하다가....일단 아래처럼 코드를 새로 수정했습니다.
- 수정이라기 보다 있는것을 이리저리 그냥 맞춰봤습니다 -_- ;;
[회원 포인트 순위 확인 : point_rank.php]
<?
// 상대 경로
$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";
?>
<? // 회원만 페이지를 볼수있도록 함
if (!$member[mb_id]) {
echo "
<script language='javascript'>
alert('회원만 이용가능합니다.');
history.go(-1);
</script>";
exit;
}
?>
<table align=center width=100% cellpadding=0 cellspacing=5 border=0 style='border=1px solid #cccccc'>
<tr><td valign=top colspan=2 class=lh>
<?
if ($member[mb_id]) // 최고관리자는 안보이게 처러 "$config[cf_admin]" <-- 관리자 아이디를 뜻함.
{
$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 "· 현재 회원님의 포인트 순위는 대략(?) <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>· 전체 포인트 : <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%;'>
<? // 회원별 순위및 포인트내역
$sql = " select count(*) from $g4[member_table] ";
$row = sql_fetch($sql);
$total_count = $row[0];
$rows = 100;
$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]' and mb_level < '5'
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=95% class=box cellpadding=4 cellspacing=0 border=0 style='border=1px solid #cccccc'>";
echo "<tr height=30>";
echo "<td height=20>$rank. $name</td>";
echo "<td align=right><font color=#FF9900>{$point}점</font></td>";
echo "</tr></table>";
echo "<table><tr><td></td></tr></table>";
}
?>
</td></tr>
</table>
<?
$page = get_paging($config[cf_write_pages], $page, $total_page, "?point_rank.php&page=");
echo "<p><table width=100% cellpadding=0 cellspacing=0><tr><td align=center>$page</td></tr></table><br><br>";
?>
<? include_once("tail.php"); ?>
------------------------------------------------------------------------------------------------------------
위에서.....$total_count = $row[0]; <--- 이부분이 좀 문제가 있는거 같습니다.
$total_count = $row[0]; 을 그냥 적어서 화면을 보면 페이징이 안나타나고
$total_count = 500; ... 이렇게 임의의 숫자를 넣어주면 페이징이 나타납니다.
위와 관련된 구문은 아래와 같습니다.
$sql = " select count(*) from $g4[member_table] ";
$row = sql_fetch($sql);
$total_count = $row[0];
전체회원수를 제대로 가져오지 못해서 생기는 문제인거 같은데
왜 이런 현상이 생기는지..뭐가 문제인지...좀 알려주세요..부탁드립니다.
다시 글을 올립니다. (리플도움주신 'sjsjin'님께 감사드립니다.)
도움을 받아서 이래저래 하다가....일단 아래처럼 코드를 새로 수정했습니다.
- 수정이라기 보다 있는것을 이리저리 그냥 맞춰봤습니다 -_- ;;
[회원 포인트 순위 확인 : point_rank.php]
<?
// 상대 경로
$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";
?>
<? // 회원만 페이지를 볼수있도록 함
if (!$member[mb_id]) {
echo "
<script language='javascript'>
alert('회원만 이용가능합니다.');
history.go(-1);
</script>";
exit;
}
?>
<table align=center width=100% cellpadding=0 cellspacing=5 border=0 style='border=1px solid #cccccc'>
<tr><td valign=top colspan=2 class=lh>
<?
if ($member[mb_id]) // 최고관리자는 안보이게 처러 "$config[cf_admin]" <-- 관리자 아이디를 뜻함.
{
$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 "· 현재 회원님의 포인트 순위는 대략(?) <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>· 전체 포인트 : <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%;'>
<? // 회원별 순위및 포인트내역
$sql = " select count(*) from $g4[member_table] ";
$row = sql_fetch($sql);
$total_count = $row[0];
$rows = 100;
$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]' and mb_level < '5'
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=95% class=box cellpadding=4 cellspacing=0 border=0 style='border=1px solid #cccccc'>";
echo "<tr height=30>";
echo "<td height=20>$rank. $name</td>";
echo "<td align=right><font color=#FF9900>{$point}점</font></td>";
echo "</tr></table>";
echo "<table><tr><td></td></tr></table>";
}
?>
</td></tr>
</table>
<?
$page = get_paging($config[cf_write_pages], $page, $total_page, "?point_rank.php&page=");
echo "<p><table width=100% cellpadding=0 cellspacing=0><tr><td align=center>$page</td></tr></table><br><br>";
?>
<? include_once("tail.php"); ?>
------------------------------------------------------------------------------------------------------------
위에서.....$total_count = $row[0]; <--- 이부분이 좀 문제가 있는거 같습니다.
$total_count = $row[0]; 을 그냥 적어서 화면을 보면 페이징이 안나타나고
$total_count = 500; ... 이렇게 임의의 숫자를 넣어주면 페이징이 나타납니다.
위와 관련된 구문은 아래와 같습니다.
$sql = " select count(*) from $g4[member_table] ";
$row = sql_fetch($sql);
$total_count = $row[0];
전체회원수를 제대로 가져오지 못해서 생기는 문제인거 같은데
왜 이런 현상이 생기는지..뭐가 문제인지...좀 알려주세요..부탁드립니다.
Fatal error: Uncaught TypeError: mysqli_fetch_assoc(): Argument #1 ($result) must be of type mysqli_result, null given in /home/kagla/new-sir/old/lib/common.lib.php:2339 Stack trace: #0 /home/kagla/new-sir/old/lib/common.lib.php(2339): mysqli_fetch_assoc() #1 /home/kagla/new-sir/old/skin/board/v16/view.skin.php(795): sql_fetch_array() #2 /home/kagla/new-sir/old/bbs/view.php(403): include_once('...') #3 /home/kagla/new-sir/old/bbs/board.php(300): include_once('...') #4 {main} thrown in /home/kagla/new-sir/old/lib/common.lib.php on line 2339