포인트 랭크 문의드립니다.

포인트 랭크 문의드립니다.

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>

 

 

두개를 비교하고 바꿔보고 해봤습니다만 잘 되지않아 이렇게 또 질문을 작성합니다.

월간랭크부분에서 닉네임이 출력되게 하려면 어떻게 수정을 해야하는지요...?

 

고수분들의 답변을 기다립니다!

이 질문에 댓글 쓰기 :

답변 1

$tmp_member을 $rank_member 로 바꿔보세요

메이드님 답변 감사합니다.
위 단어가 4개가 검색이 되어 모두 알려주신데로 변경해봤는데 여전히 닉네임란이 공백입니다.

$rank_sideview = get_sideview($rank_member['mb_id'], cut_str($rank_member['mb_nick'], $config['cf_cut_name']), $rank_member['mb_email'], $rank_member['mb_homepage']);

답변을 작성하시기 전에 로그인 해주세요.
전체 2
© SIRSOFT
현재 페이지 제일 처음으로