월간포인트랭크 다시 질문 올려요.
본문
https://www.happyjung.com/lecture/2794?page=6
해피정님의 월간 포인트랭크 게시물을 보고 적용해보았는데요...
포인트 출력부분은 정상적으로 표기가 되는 것 같은데
닉네임란이 공백으로 출력됩니다.
아래 코드입니다.
<table width="100%">
<?php
$rank_nowdate = date("Y-m",time()); // 이번달
$rank_sql = "select * , count(B.mb_id) as count, sum(B.po_point) as point from {$g5['member_table']} as A
left join {$g5['point_table']} as B
on (A.mb_id = B.mb_id and A.mb_level < 10 and A.mb_point >= 0)
where date_format(B.po_datetime,'%Y-%m') = '{$rank_nowdate}'
group by B.mb_id order by point desc LIMIT 0, 10
";
$rank_result = sql_query($rank_sql);
//echo $rank_sql;
?>
<tr>
<td colspan="3" style="text-align:center; background-color:#39F; font-size:1.2em; font-weight:bold; color:#fff; line-height:30px; padding:3px 0;">
포인트 순위
<span style="font-size:0.9em;">(<?php echo substr($rank_nowdate, 0, 4)."년"; ?> <?php echo substr($rank_nowdate,5,2)."월"; ?>)</span>
</td>
</tr>
<?php
for ($i=1; $rank_row=sql_fetch_array($rank_result); $i++)
{
$rank_member = sql_fetch("select mb_id, mb_nick, mb_email, mb_homepage from {$g5['member_table']} where mb_id = '".$row_rank['mb_id']."'");
$rank_sideview = get_sideview($tmp_member['mb_id'], cut_str($tmp_member['mb_nick'], $config['cf_cut_name']), $tmp_member['mb_email'], $tmp_member['mb_homepage']);
?>
<tr style="border-bottom:1px dotted #CCC;">
<td style="width:70px; text-align:center; line-height:26px;"><?php echo $i; ?></td>
<td><?php echo $rank_sideview; ?></td>
<td style="text-align:right; padding-right:20px;"><?php echo number_format($rank_row['mb_point']); ?></td>
</tr>
<?php
}
?>
</table>
초보인 제 생각으로는 for문에 $rank_sideview 이 변수를 못 읽어들이는거같아서
아는거 이것저것 다 해봤습니다만 닉네임이 뜨질 않습니다.
아래 코드는 기존에 정상적으로 사용중인 포인트랭크 코드입니다.
<?php
include_once "./_common.php";
$sql_common = "
from {$g5['member_table']} T1 ";
$sql_search = " where (1) ";
if($stx){
$sql_search .= " and (mb_nick like '%".$stx."%') ";
}
if (!$sst) {
$sst = "mb_point ";
$sod = "desc";
}
$sql_order = " order by {$sst} {$sod} ";
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
if($rows < 1) $rows = 5;
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
//$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit 0, 50 ";
$result = sql_query($sql);
?>
<?php
if ($member[mb_id]){
include_once G5_LIB_PATH."/level_icon.lib.php";
?>
<?php } ?>
<table>
<tr>
<td colspan="3" style="text-align:center; background-color:#39F; font-size:1.2em; font-weight:bold; color:#fff; line-height:30px; padding:3px 0;">
전체 포인트 TOP 50
</td>
</tr>
<tr class="rank_top">
<td class="rank_top_menu">순위</td>
<td class="rank_top_menu">닉네임</td>
<td class="rank_top_menu">포인트</td>
</tr>
<?php
$i = 0;
while($row = sql_fetch_array($result)){
$arr = get_level_icon($row['mb_id']);
if($i == 0){
$standard = $row['mb_point'];
}
$width = $row['mb_point'] / $standard * 100;
if($width > 100) $width = 100;
$i++;
?>
<tr>
<td><?php echo (($page-1) * $rows) + $i; ?>위</td>
<td><img class="m_level_img" src="<?php echo G5_IMG_URL . "/level/" . "level_" . $arr['level']; ?>.png" /> <?php echo $row['mb_nick']; ?></td>
<td class="point"><span><em style="width:<?php echo sprintf("%.1f", $width); ?>%"><?php echo $row['mb_point']; ?></em></span></td>
</tr>
<?php } ?>
<?php if($i == 0){ ?>
<tr>
<td colspan="4">검색된 데이터가 업습니다.</td>
</tr>
<?php } ?>
</table>
두개를 비교하고 바꿔보고 해봤습니다만 잘 되지않아 이렇게 또 질문을 작성합니다.
월간랭크부분에서 닉네임이 출력되게 하려면 어떻게 수정을 해야하는지요...?
그누보드5.4.2입니다!
고수분들의 답변을 기다립니다!
!-->!-->답변 1
for ($i=1; $rank_row=sql_fetch_array($rank_result); $i++) { $rank_member = sql_fetch("select mb_id, mb_nick, mb_email, mb_homepage from {$g5['member_table']} where mb_id = '".$row_rank['mb_id']."'"); $rank_sideview = get_sideview($tmp_member['mb_id'], cut_str($tmp_member['mb_nick'], $config['cf_cut_name']), $tmp_member['mb_email'], $tmp_member['mb_homepage']);
여기 부분을
for ($i=1; $rank_row=sql_fetch_array($rank_result); $i++) { $mb = get_member($rank_row['mb_id']); $rank_sideview = get_sideview($mb['mb_id'], $mb['mb_nick']);
로 바꿔주세요.. 쪽지 보내드렸으니 참고하세요~
이제 퇴근 ~~ ㅠㅠ
!-->
답변을 작성하시기 전에 로그인 해주세요.