테스트 사이트 - 개발 중인 베타 버전입니다

값 나누기 .. 중간에 if문을 넣어야할텐데. 채택완료

아나냐양 6년 전 조회 2,031

회원 포인트의 8000점마다 이미지가 바뀌는 소스입니다.

400000 점까지는 8000점마다 바뀌고  그 이후에는 12000점 마다 바뀌게 하고 싶은데

이부분을 바꿔야하는거 같은데 아무리 해봐도안되네요..

 

원본소스입니다.

</p>

<p>function get_level_icon($mb_id) { 

    global $g5; 

    $max_point = 1000; // 최저 

    $ren_point = 8000; // 나누기 

    $max_level = 450; // 마지막레벨 

    

    $mb = get_member($mb_id, "mb_id, mb_point"); 

    $ic_mb_id = $mb['mb_id']; 

    $is_admin = is_admin($ic_mb_id); 

    if ($ic_mb_id) { 

        // 관리자 

        if ($is_admin == 'super') { 

            $mb_icon = "<img src='".G5_IMG_URL."/level/admin.gif' align='absmiddle' title='관리자'>"; 

        } else { 

            $mb_point = $mb['mb_point']; 

            $point = ($mb_point < $max_point) ? $max_point : $mb_point; // 최저포인트 이하 

            $mb_level = (int)($point / $ren_point); </p>

<p>            $level = ($mb_level > $max_level) ? $max_level : $mb_level; // 맥스레벨 까지만 

            $mb_icon = "<img src='".G5_IMG_URL."/level/".$level.".gif' align='absmiddle'  ".$level."".number_format($mb_point)."점'>"; </p>

<p>        } 

    } 

    else { 

        // 비회원 

        $mb_icon = "<img src='".G5_IMG_URL."/level/0.gif' align='absmiddle' title=''>"; 

    } 

    return $mb_icon; </p>

<p>} 

?> </p>

<p>

 

 

아래는 직접 해본것이 이건데.

이렇게 해봣는데 화며이 아예 안나오고 오류가 납니다.

어떻게 변경해야할까요 ㅠ

 

function get_level_icon($mb_id) { 

    global $g5; 

    $max_point = 1000; // 최저 

    $ren_point = 8000; // 나누기 

    $max_level = 450; // 마지막레벨 </p>

<p> </p>

<p>    $min_level = 50; //50레벨까 8000

    $ren2_point = 12000; //50이후 12000씩</p>

<p>    $min_total = 400000; // 8x5의 40만값

    

    $mb = get_member($mb_id, "mb_id, mb_point"); 

    $ic_mb_id = $mb['mb_id']; 

    $is_admin = is_admin($ic_mb_id); 

    if ($ic_mb_id) { 

        // 관리자 

        if ($is_admin == 'super') { 

            $mb_icon = "<img src='".G5_IMG_URL."/level/admin.gif' align='absmiddle' title='관리자'>"; 

        } else { 

            $mb_point = $mb['mb_point']; 

            $point = ($mb_point < $max_point) ? $max_point : $mb_point; // 최저포인트 이하 

            $mb_level = (int)($point / $ren_point); 

            

            if ($mb_level < $min_level) {

            $level = ($mb_level > $max_level) ? $max_level : $mb_level; // 맥스레벨 까지만 

            $mb_icon = "<img src='".G5_IMG_URL."/level/".$level.".gif' align='absmiddle'  ".$level."".number_format($mb_point)."점'>"; }</p>

<p> </p>

<p>            else {

            $mb_minp = $mb['mb_point']

            $mb_division = (int)($mb_minp / $ren2_point);

            $mb_mmplevel = (int)($min_level + $mb_division);

            $level = ($mb_mmplevel > $max_level) ? $max_level : $mb_mmplevel; // 맥스레벨 까지만 

            $mb_icon = "<img src='".G5_IMG_URL."/level/".$level.".gif' align='absmiddle'  ".$level."".number_format($mb_point)."점'>"; }

            }

        } 

     

    else { 

        // 비회원 

        $mb_icon = "<img src='".G5_IMG_URL."/level/0.gif' align='absmiddle' title=''>"; 

    } 

    return $mb_icon; 

} 

?> </p>

<p>

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트

$point = ($mb_point < $max_point) ? $max_point : $mb_point; // 최저포인트 이하
if($mb_point > 400000) $ren_point = 12000;
$mb_level = (int)($point / $ren_point);

원본 코드에서 저 둘 사이에 빨간 부분 추가해 보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

아나냐양
6년 전
감사합니다.

이렇게 넣으면
400000 이상 점수전체를 12000으로 나누어서요

400000까지는 8000으로 나누고, 400000이상 부분만 12000으로 나누려고요 ㅠ
왕계란
6년 전
유저의 포인트 총합을 갖고 하는 게 아니라는 건가요?
예를 들어 A는 포인트가 300000이고 B는 500000일 경우 A는 400000이 안 되니까 계속 8000으로 나누고 B는 400000까지는 8000으로 나누고 나머지 100000은 12000으로 나눈다는 말씀이신가요?
아나냐양
6년 전
계란님 네 그 설명이 맞습니다.!!
왕계란
6년 전
if($mb_point > 400000) {
$tmp_point = $mb_point - 400000;
$mb_level = (int)($tmp_point / 12000) + (int)(400000 / $ren_point);
} else {
$mb_level = (int)($point / $ren_point);
}

이렇게 하면 되지 않을까요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인