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

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

QA

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

본문

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

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

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

 

원본소스입니다.


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); 
            $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)."점'>"; 
        } 
    } 
    else { 
        // 비회원 
        $mb_icon = "<img src='".G5_IMG_URL."/level/0.gif' align='absmiddle' title=''>"; 
    } 
    return $mb_icon; 
} 
?> 

 

 

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

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

어떻게 변경해야할까요 ㅠ

 


function get_level_icon($mb_id) { 
    global $g5; 
    $max_point = 1000; // 최저 
    $ren_point = 8000; // 나누기 
    $max_level = 450; // 마지막레벨 
 
    $min_level = 50; //50레벨까 8000
    $ren2_point = 12000; //50이후 12000씩
    $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)."점'>"; }
 
            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; 
} 
?> 

 

 

 

이 질문에 댓글 쓰기 :

답변 1

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

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

유저의 포인트 총합을 갖고 하는 게 아니라는 건가요?
예를 들어 A는 포인트가 300000이고 B는 500000일 경우 A는 400000이 안 되니까 계속 8000으로 나누고 B는 400000까지는 8000으로 나누고 나머지 100000은 12000으로 나눈다는 말씀이신가요?

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);
}

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

답변을 작성하시기 전에 로그인 해주세요.
전체 123,474 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT