월간포인트랭크 다시 질문 올려요.

월간포인트랭크 다시 질문 올려요.

QA

월간포인트랭크 다시 질문 올려요.

답변 1

본문

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']);     

로 바꿔주세요.. 쪽지 보내드렸으니 참고하세요~

이제 퇴근 ~~ ㅠㅠ

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 482
© SIRSOFT
현재 페이지 제일 처음으로