진하오님의 랭킹 소스 중..급질입니다^^ 정보
진하오님의 랭킹 소스 중..급질입니다^^
본문
rank.php 증에
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$rank = (($page - 1) * $rows) + $i + 1;
$point = number_format($row[mb_point]);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$rank = (($page - 1) * $rows) + $i + 1;
$point = number_format($row[mb_point]);
랭킹을 출력하는 소스인데요...
내용을 본즉 랭킹은 페이지를 이용하여 뽑아내는거 같은데요
문제는 검색을하여 나오는 회원 순위역시
위의 함수를 적용받다보니
검색을 할경우
랭킹이 모두1로만 나오네요..
검색을 통하여 나오는 랭킹이
리스트에 나오는 본래 랭킹이 나오게 할 수 없을까요??
if문을써서 해보려 했지만 아직 초보라서
3일을 끙끙대다 고수님들의 조언을 구합니다^^
댓글 전체
rank.php 를 첨부파일로 올려주는 쎈스....

네..죄송...지금 첨부했습니다....
헉...첨부 하려니 수정이 안되네여 ㅜㅜ
아래에 붙임니다ㅜㅜ
<?
if (!defined("_GNUBOARD_")) exit;
include_once("./_common.php");
include_once("$g4[path]/head.sub.php");
define("_CO_POINT_RANK_", TRUE);
$html_title = "포인트 랭킹";
$g4[title] = "" . $html_title;
?>
<?
if ($member[mb_level] < 2)
echo "<script>
alert('회원만 조회하실수 있습니다.');
location.href='/bbs/login.php?wr_id=&url=point_rank.php';
</script>";
?>
<style type="text/css">
<!--
.bk123 {
border: 1px solid #CCCCCC;
}
.bkbk {
border: 1px solid #999999;
}
body {
margin-left: 10px;
}
-->
</style>
<br />
<table width="800">
<!--DWLayoutTable-->
<tr><td width="782" height="34" valign="top"><img src="<?=$g4['path']?>/img/title_p.gif" /></td>
<td width="1" > </td></tr>
</tr></table>
<table width="650" border="0" cellpadding="6" cellspacing="0" >
<tr>
<td height="15" colspan="6" align="left" valign="top"></td>
</tr>
<tr>
<td height="100" colspan="6" align="left" valign="middle"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="bk123">
<tr>
<td height="35" style="padding-left:20px;">회원권한제도: <img src="/level_img/level5.gif"> 정회원, <img src="/level_img/level6.gif">우수회원, <img src="/level_img/level7.gif">보절가족회원, <img src="/level_img/level8.gif"> VIP회원, <img src="/level_img/level9.gif"> 운영자, <img src="/level_img/level10.gif"> 웹마스터. </td>
</tr>
<?
if ($member[mb_id])
{
?>
<tr>
<td height="35" style="padding-left:20px;"><?
$sql = " select sum(mb_point) as sum_point from $g4[member_table]";
$row = sql_fetch($sql);
$sum_point = $row[sum_point];
echo "레벨상황: 현재 <b>".$member[mb_id]."</b>님의 포인트는 <B>".$member[mb_point]."점</B>";
$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);
$sql2 = " select count(mb_id) as cnt from $g4[member_table]";
$row2 = sql_fetch($sql2);
$total_count = $row2[cnt];
echo " 이고, 랭킹은 전체회원수 <b>".$total_count."</b>명중 <B>".number_format($row[cnt])."등</B> 입니다.<br>";
?></td>
</tr>
<? } ?>
</table></td>
</tr>
<tr >
<td width="11%"><b><font color="blue">랭킹</font></b></td>
<td width="23%" background="img/title_bg.gif" height="25"><b><font color="blue">닉네임</font></b></td>
<td width="17%" background="img/title_bg.gif"><strong><font color="blue">이름</font></strong></td>
<td width="17%" background="img/title_bg.gif" height="25"><b><font color="blue">아이디</font></b></td>
<td width="13%" background="img/title_bg.gif" align="right" height="25"><b><font color="blue">회원권한</font></b></td>
<td width="19%" align="right" background="img/title_bg.gif" ><b><font color="blue">포인트</font></b></td>
</tr>
<tr>
<td colspan="6" height="5"></td>
</tr>
<tr>
<td colspan="6" height="1" bgcolor="#CCCCCC"></td>
</tr>
<tr>
<td colspan="6" height="5"></td>
</tr>
<?
$sql = " select count(*) as cnt from $g4[member_table]";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$rows = 20;
$total_page = ceil($total_count / $rows);
if ($page == "") { $page = 1; }
$from_record = ($page - 1) * $rows;
$mod = 48;
$tbl_col =2 ;
$tbl_col_sep = (int)($mod / $tbl_col) + ($mod % $tbl_col) ;
if($_GET[keyword]!="")
{
if($_GET[type]==0)
{
$keyword_yi="where mb_nick='$_GET[keyword]'";
}
if($_GET[type]==1)
{
$keyword_yi="where mb_name='$_GET[keyword]'";
}
if($_GET[type]==2)
{
$keyword_yi="where mb_id='$_GET[keyword]'";
}
}
$sql = " select * from $g4[member_table] $keyword_yi
order by mb_point desc, mb_today_login desc
limit $from_record, $rows ";
$sql11 = " select count(*) from $g4[member_table] $keyword_yi
order by mb_point desc, mb_today_login desc
";
$result = sql_query($sql);
$result11 = sql_query($sql11);
//echo $rsn11;
$rsn11=mysql_fetch_array($result11);
if($rsn11[0]==0)
{
if($_GET[type]==0)
{
$ty="닉네임";
}
if($_GET[type]==1)
{
$ty="이름";
}
if($_GET[type]==2)
{
$ty="아이디";
}
echo "<tr><td colspan=6 align=center height=150> 검색하신 $ty(<font color=red>$_GET[keyword]</font>) 에 대한 검색결과가 없습니다</td></tr>";
}
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$rank = (($page - 1) * $rows) + $i + 1;
$point = number_format($row[mb_point]);
$id = $row[mb_id];
?>
<tr height="30" >
<td width="11%" height="35" > <?=$rank?></td>
<td height="35"><?= level_icon($row[mb_id])?> <a title="쪽지보내기" onfocus='this.blur()' style="FILTER: blendTrans(duration=0.7); CURSOR: pointer" onclick="window.open('/bbs/memo_form.php?me_recv_mb_id=<?=$row[mb_id]?>','www_yiwuauction_com1','width=602,height=521,toolbars=no,resizable=no,scrollbars=no')"><?=$row[mb_nick]?></a> </td>
<td height="35">
<font color="#3399FF"><?=$row[mb_name]?></font></td>
<td width="17%" height="35"><a title="정보보기" onfocus='this.blur()' style="FILTER: blendTrans(duration=0.7); CURSOR: pointer" onclick="window.open('/bbs/profile.php?mb_id=<?=$row[mb_id]?>','www_yiwuauction_com2','width=602,height=521,toolbars=no,resizable=no,scrollbars=no')"><b><?=$row[mb_id]?></b></a></td>
<td width="13%" height="35" align="right">
<?
if ($level = $mb[mb_level] == 10)
$level="웹마스터";
else if ($level = $mb[mb_level] == 6)
$level="게시판운영자";
else if ($level = $mb[mb_level] == 5)
$level="VIP회원";
else if ($level = $mb[mb_level] == 4)
$level="보절가족회원";
else if ($level = $mb[mb_level] == 3)
$level="우수회원";
else if ($level = $mb[mb_level] == 2)
$level="정회원";
else if ($level = $mb[mb_level] == 1)
$level="유람객";
else if ($level = $mb[mb_level] == 0)
$level="비회원";
?>
<font color=green><?=$level?></font> </td>
<td width="19%" height="35" align="right"><font color="#FF0000"><?=$point?> 점</font></td>
</tr>
<tr>
<td colspan="6" height="1" background="img/dot_line.gif"></td>
</tr>
<? } ?>
<tr>
<td colspan="6" height="30"></td>
</tr>
<tr>
<td height="20" colspan="6">
<table width="651" height="20" border="0" cellpadding="0" cellspacing="0">
<form id="form1" name="form1" method="get" action=""><tr>
<td width="423" valign="middle">
<?
if($_GET[keyword]=="")
{
$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>";
}
?></td>
<td width="187" align="right" valign="middle">
<div align="center">
<select name="type" id="type">
<option value="0" <?php if($_GET[type]==0){ echo "selected";}?>>닉네임</option>
<option value="1" <?php if($_GET[type]==1){ echo "selected";}?>>이름</option>
<option value="2" <?php if($_GET[type]==2){ echo "selected";}?>>아이디</option>
</select>
<input name="keyword" type="text" class="bkbk" id="keyword" size="15" value="<?=$_GET[keyword]?>"/>
</div> </td>
<td width="41" align="right"><input type="image" name="imageField" src="img/btn_post_search.gif" /></td>
</tr></form>
</table></td>
</tr>
<tr>
<td height="15" colspan="6"> </td>
</tr>
</table>
헉...첨부 하려니 수정이 안되네여 ㅜㅜ
아래에 붙임니다ㅜㅜ
<?
if (!defined("_GNUBOARD_")) exit;
include_once("./_common.php");
include_once("$g4[path]/head.sub.php");
define("_CO_POINT_RANK_", TRUE);
$html_title = "포인트 랭킹";
$g4[title] = "" . $html_title;
?>
<?
if ($member[mb_level] < 2)
echo "<script>
alert('회원만 조회하실수 있습니다.');
location.href='/bbs/login.php?wr_id=&url=point_rank.php';
</script>";
?>
<style type="text/css">
<!--
.bk123 {
border: 1px solid #CCCCCC;
}
.bkbk {
border: 1px solid #999999;
}
body {
margin-left: 10px;
}
-->
</style>
<br />
<table width="800">
<!--DWLayoutTable-->
<tr><td width="782" height="34" valign="top"><img src="<?=$g4['path']?>/img/title_p.gif" /></td>
<td width="1" > </td></tr>
</tr></table>
<table width="650" border="0" cellpadding="6" cellspacing="0" >
<tr>
<td height="15" colspan="6" align="left" valign="top"></td>
</tr>
<tr>
<td height="100" colspan="6" align="left" valign="middle"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="bk123">
<tr>
<td height="35" style="padding-left:20px;">회원권한제도: <img src="/level_img/level5.gif"> 정회원, <img src="/level_img/level6.gif">우수회원, <img src="/level_img/level7.gif">보절가족회원, <img src="/level_img/level8.gif"> VIP회원, <img src="/level_img/level9.gif"> 운영자, <img src="/level_img/level10.gif"> 웹마스터. </td>
</tr>
<?
if ($member[mb_id])
{
?>
<tr>
<td height="35" style="padding-left:20px;"><?
$sql = " select sum(mb_point) as sum_point from $g4[member_table]";
$row = sql_fetch($sql);
$sum_point = $row[sum_point];
echo "레벨상황: 현재 <b>".$member[mb_id]."</b>님의 포인트는 <B>".$member[mb_point]."점</B>";
$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);
$sql2 = " select count(mb_id) as cnt from $g4[member_table]";
$row2 = sql_fetch($sql2);
$total_count = $row2[cnt];
echo " 이고, 랭킹은 전체회원수 <b>".$total_count."</b>명중 <B>".number_format($row[cnt])."등</B> 입니다.<br>";
?></td>
</tr>
<? } ?>
</table></td>
</tr>
<tr >
<td width="11%"><b><font color="blue">랭킹</font></b></td>
<td width="23%" background="img/title_bg.gif" height="25"><b><font color="blue">닉네임</font></b></td>
<td width="17%" background="img/title_bg.gif"><strong><font color="blue">이름</font></strong></td>
<td width="17%" background="img/title_bg.gif" height="25"><b><font color="blue">아이디</font></b></td>
<td width="13%" background="img/title_bg.gif" align="right" height="25"><b><font color="blue">회원권한</font></b></td>
<td width="19%" align="right" background="img/title_bg.gif" ><b><font color="blue">포인트</font></b></td>
</tr>
<tr>
<td colspan="6" height="5"></td>
</tr>
<tr>
<td colspan="6" height="1" bgcolor="#CCCCCC"></td>
</tr>
<tr>
<td colspan="6" height="5"></td>
</tr>
<?
$sql = " select count(*) as cnt from $g4[member_table]";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$rows = 20;
$total_page = ceil($total_count / $rows);
if ($page == "") { $page = 1; }
$from_record = ($page - 1) * $rows;
$mod = 48;
$tbl_col =2 ;
$tbl_col_sep = (int)($mod / $tbl_col) + ($mod % $tbl_col) ;
if($_GET[keyword]!="")
{
if($_GET[type]==0)
{
$keyword_yi="where mb_nick='$_GET[keyword]'";
}
if($_GET[type]==1)
{
$keyword_yi="where mb_name='$_GET[keyword]'";
}
if($_GET[type]==2)
{
$keyword_yi="where mb_id='$_GET[keyword]'";
}
}
$sql = " select * from $g4[member_table] $keyword_yi
order by mb_point desc, mb_today_login desc
limit $from_record, $rows ";
$sql11 = " select count(*) from $g4[member_table] $keyword_yi
order by mb_point desc, mb_today_login desc
";
$result = sql_query($sql);
$result11 = sql_query($sql11);
//echo $rsn11;
$rsn11=mysql_fetch_array($result11);
if($rsn11[0]==0)
{
if($_GET[type]==0)
{
$ty="닉네임";
}
if($_GET[type]==1)
{
$ty="이름";
}
if($_GET[type]==2)
{
$ty="아이디";
}
echo "<tr><td colspan=6 align=center height=150> 검색하신 $ty(<font color=red>$_GET[keyword]</font>) 에 대한 검색결과가 없습니다</td></tr>";
}
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$rank = (($page - 1) * $rows) + $i + 1;
$point = number_format($row[mb_point]);
$id = $row[mb_id];
?>
<tr height="30" >
<td width="11%" height="35" > <?=$rank?></td>
<td height="35"><?= level_icon($row[mb_id])?> <a title="쪽지보내기" onfocus='this.blur()' style="FILTER: blendTrans(duration=0.7); CURSOR: pointer" onclick="window.open('/bbs/memo_form.php?me_recv_mb_id=<?=$row[mb_id]?>','www_yiwuauction_com1','width=602,height=521,toolbars=no,resizable=no,scrollbars=no')"><?=$row[mb_nick]?></a> </td>
<td height="35">
<font color="#3399FF"><?=$row[mb_name]?></font></td>
<td width="17%" height="35"><a title="정보보기" onfocus='this.blur()' style="FILTER: blendTrans(duration=0.7); CURSOR: pointer" onclick="window.open('/bbs/profile.php?mb_id=<?=$row[mb_id]?>','www_yiwuauction_com2','width=602,height=521,toolbars=no,resizable=no,scrollbars=no')"><b><?=$row[mb_id]?></b></a></td>
<td width="13%" height="35" align="right">
<?
if ($level = $mb[mb_level] == 10)
$level="웹마스터";
else if ($level = $mb[mb_level] == 6)
$level="게시판운영자";
else if ($level = $mb[mb_level] == 5)
$level="VIP회원";
else if ($level = $mb[mb_level] == 4)
$level="보절가족회원";
else if ($level = $mb[mb_level] == 3)
$level="우수회원";
else if ($level = $mb[mb_level] == 2)
$level="정회원";
else if ($level = $mb[mb_level] == 1)
$level="유람객";
else if ($level = $mb[mb_level] == 0)
$level="비회원";
?>
<font color=green><?=$level?></font> </td>
<td width="19%" height="35" align="right"><font color="#FF0000"><?=$point?> 점</font></td>
</tr>
<tr>
<td colspan="6" height="1" background="img/dot_line.gif"></td>
</tr>
<? } ?>
<tr>
<td colspan="6" height="30"></td>
</tr>
<tr>
<td height="20" colspan="6">
<table width="651" height="20" border="0" cellpadding="0" cellspacing="0">
<form id="form1" name="form1" method="get" action=""><tr>
<td width="423" valign="middle">
<?
if($_GET[keyword]=="")
{
$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>";
}
?></td>
<td width="187" align="right" valign="middle">
<div align="center">
<select name="type" id="type">
<option value="0" <?php if($_GET[type]==0){ echo "selected";}?>>닉네임</option>
<option value="1" <?php if($_GET[type]==1){ echo "selected";}?>>이름</option>
<option value="2" <?php if($_GET[type]==2){ echo "selected";}?>>아이디</option>
</select>
<input name="keyword" type="text" class="bkbk" id="keyword" size="15" value="<?=$_GET[keyword]?>"/>
</div> </td>
<td width="41" align="right"><input type="image" name="imageField" src="img/btn_post_search.gif" /></td>
</tr></form>
</table></td>
</tr>
<tr>
<td height="15" colspan="6"> </td>
</tr>
</table>
위소스에서 아애의 내용을 보시고 "추가시작" ~ "추가끝" 부분을 넣어시고 검색해보세요.
답은 나왔으니 화면은 정리는 원하시는 모습으로 바꿔주세요.
if($_GET[type]==2)
{
$keyword_yi="where mb_id='$_GET[keyword]'";
}
}
/** 추가시작 ************************************************************/
$sql = " select sum(mb_point) as sum_point from $g4[member_table] $keyword_yi";
$row = sql_fetch($sql);
echo $sql;
echo "<br>";
$sql = " select count(mb_id) as cnt from $g4[member_table]
where mb_point >= '$row[sum_point]' order by mb_point desc ";
$row = sql_fetch($sql);
echo $sql;
echo "<br>";
echo " <B>".number_format($row[cnt])."등</B>";
/** 추가끝 ************************************************************/
$sql = " select * from $g4[member_table] $keyword_yi
order by mb_point desc, mb_today_login desc
limit $from_record, $rows ";
$sql11 = " select count(*) from $g4[member_table] $keyword_yi
order by mb_point desc, mb_today_login desc
";
$result = sql_query($sql);
$result11 = sql_query($sql11);
답은 나왔으니 화면은 정리는 원하시는 모습으로 바꿔주세요.
if($_GET[type]==2)
{
$keyword_yi="where mb_id='$_GET[keyword]'";
}
}
/** 추가시작 ************************************************************/
$sql = " select sum(mb_point) as sum_point from $g4[member_table] $keyword_yi";
$row = sql_fetch($sql);
echo $sql;
echo "<br>";
$sql = " select count(mb_id) as cnt from $g4[member_table]
where mb_point >= '$row[sum_point]' order by mb_point desc ";
$row = sql_fetch($sql);
echo $sql;
echo "<br>";
echo " <B>".number_format($row[cnt])."등</B>";
/** 추가끝 ************************************************************/
$sql = " select * from $g4[member_table] $keyword_yi
order by mb_point desc, mb_today_login desc
limit $from_record, $rows ";
$sql11 = " select count(*) from $g4[member_table] $keyword_yi
order by mb_point desc, mb_today_login desc
";
$result = sql_query($sql);
$result11 = sql_query($sql11);

답변감사드립니다^^ 채택했구요^^
그런데 문제점은
한페이지의 포인트의 총계로 등위를 정해주다보니...
검색전 리스트에 리스트에 등재된 포인트의 총계에의한 등수가 나오네요...
어떠한 아뒤라도 로그인해서 랭크페이지 들어오면..1등 이라는 문구가 보인다는 ㅡㅡ;;;
문제점이 있네염^^
그런데 문제점은
한페이지의 포인트의 총계로 등위를 정해주다보니...
검색전 리스트에 리스트에 등재된 포인트의 총계에의한 등수가 나오네요...
어떠한 아뒤라도 로그인해서 랭크페이지 들어오면..1등 이라는 문구가 보인다는 ㅡㅡ;;;
문제점이 있네염^^
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=1928&sca=&sfl=mb_id%2C1&stx=nasca&page=2
상단의 링크는 괜히 끌어다 놓은것이 아니지요.
각각의 회원정보를 $member[mb_id]와 같은 변수로 필드값을 끌어오는 것 처럼
get_member()함수를 통해 정상적으로 가져오지 못해 언급한 문제가 발생됩니다.
자세한 내용은 링크게시물 및 관련키워드로 검색된 게시물 참조.
상단의 링크는 괜히 끌어다 놓은것이 아니지요.
각각의 회원정보를 $member[mb_id]와 같은 변수로 필드값을 끌어오는 것 처럼
get_member()함수를 통해 정상적으로 가져오지 못해 언급한 문제가 발생됩니다.
자세한 내용은 링크게시물 및 관련키워드로 검색된 게시물 참조.