포인트에 따른 자동 레벨업

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
포인트에 따른 자동 레벨업

QA

포인트에 따른 자동 레벨업

본문

일정 포인트에 도달하면 레벨이 자동으로 변하게 하고 싶습니다.

 

/lib/common.lib 파일을 수정하여 아래와 같이 입력을 하였습니다.

 


// 포인트 부여
function insert_point($mb_id, $point, $content='', $rel_table='', $rel_id='', $rel_action='')
{
    global $config;
    global $g4;
    global $is_admin;
    // 포인트 사용을 하지 않는다면 return
    if (!$config[cf_use_point]) { return 0; }
    // 포인트가 없다면 업데이트 할 필요 없음
    if ($point == 0) { return 0; }
    // 회원아이디가 없다면 업데이트 할 필요 없음
    if ($mb_id == "") { return 0; }
    $mb = sql_fetch(" select mb_id from $g4[member_table] where mb_id = '$mb_id' ");
    if (!$mb[mb_id]) { return 0; }
    // 이미 등록된 내역이라면 건너뜀
    if ($rel_table || $rel_id || $rel_action)
    {
        $sql = " select count(*) as cnt from $g4[point_table]
                  where mb_id = '$mb_id'
                    and po_rel_table = '$rel_table'
                    and po_rel_id = '$rel_id'
                    and po_rel_action = '$rel_action' ";
        $row = sql_fetch($sql);
        if ($row[cnt])
            return -1;
    }
    // 포인트 건별 생성
    $sql = " insert into $g4[point_table]
                set mb_id = '$mb_id',
                    po_datetime = '$g4[time_ymdhis]',
                    po_content = '".addslashes($content)."',
                    po_point = '$point',
                    po_rel_table = '$rel_table',
                    po_rel_id = '$rel_id',
                    po_rel_action = '$rel_action' ";
    sql_query($sql);
    // 포인트 내역의 합을 구하고
    $sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
    $row = sql_fetch($sql);
    $sum_point = $row[sum_po_point];
 // 포인트 따라 회원 등급 바꾸기
 if($is_admin){
$squery = ", mb_level = '10'";
}else{
  if($sum_point >= 0 && $sum_point < 50){
   $new_level = 2;
  }elseif($sum_point >= 50 && $sum_point < 800){
   $new_level = 3;
  }elseif($sum_point >= 800 && $sum_point < 1000){
   $new_level = 4;
  }elseif($sum_point >= 1000 && $sum_point < 3000){
   $new_level = 5;
  }elseif($sum_point >= 3000 && $sum_point < 5000){
   $new_level = 6;
  }elseif($sum_point >= 5000 && $sum_point < 10000){
   $new_level = 7;
  }elseif($sum_point >= 10000 && $sum_point < 15000){
   $new_level = 8;
  }elseif($sum_point >= 15000 && $sum_point < 30000){
   $new_level = 9;
  }elseif($sum_point >= 30000){
   $new_level = 10;
  }
  $squery = ", mb_level = '$new_level'";
 }
 
    // 포인트 UPDATE
    $sql = " update $g4[member_table] set mb_point = '$sum_point' $squery where mb_id = '$mb_id' ";
    sql_query($sql);
    return 1;
}
// 포인트 삭제
function delete_point($mb_id, $rel_table, $rel_id, $rel_action)
{
    global $g4;
    $result = false;
    if ($rel_table || $rel_id || $rel_action)
    {
        $result = sql_query(" delete from $g4[point_table]
                     where mb_id = '$mb_id'
                       and po_rel_table = '$rel_table'
                       and po_rel_id = '$rel_id'
                       and po_rel_action = '$rel_action' ", false);
        // 포인트 내역의 합을 구하고
        $sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
        $row = sql_fetch($sql);
        $sum_point = $row[sum_po_point];
  // 포인트 따라 회원 등급 바꾸기
  if($is_admin){
  $squery = ", mb_level = '10'";
}else{
   if($sum_point >= 0 && $sum_point < 999){
    $new_level = 2;
   }elseif($sum_point >= 10000 && $sum_point < 19999){
    $new_level = 3;
   }elseif($sum_point >= 20000 && $sum_point < 29999){
    $new_level = 4;
   }elseif($sum_point >= 30000 && $sum_point < 39999){
    $new_level = 5;
   }elseif($sum_point >= 40000 && $sum_point < 49999){
    $new_level = 6;
   }elseif($sum_point >= 50000 && $sum_point < 59999){
    $new_level = 7;
   }elseif($sum_point >= 60000 && $sum_point < 69999){
    $new_level = 8;
   }elseif($sum_point >= 70000 && $sum_point < 79999){
    $new_level = 9;
   }elseif($sum_point >= 80000){
    $new_level = 10;
   }
   $squery = ", mb_level = '$new_level'";
  }
        // 포인트 UPDATE
        $sql = " update $g4[member_table] set mb_point = '$sum_point' $squery where mb_id = '$mb_id' ";
        $result = sql_query($sql);
    }
    return $result;
} 

 

라고 입력을 한 후 시험적으로 5만 포인트를 주어도 레벨 10 / 2만을 주어도 레벨 10이 되어버립니다.

위 구문대로 주어진 조건대로 레벨업을 하려면 어디를 수정해 주어야 하나요?

 

 

이 질문에 댓글 쓰기 :

답변 2

   $new_level = 2;
047  }elseif($sum_point >= 50 && $sum_point < 800){
048   $new_level = 3;
049  }elseif($sum_point >= 800 && $sum_point < 1000){
050   $new_level = 4;
051  }elseif($sum_point >= 1000 && $sum_point < 3000){
052   $new_level = 5;
053  }elseif($sum_point >= 3000 && $sum_point < 5000){
054   $new_level = 6;
055  }elseif($sum_point >= 5000 && $sum_point < 10000){
056   $new_level = 7;
057  }elseif($sum_point >= 10000 && $sum_point < 15000){
058   $new_level = 8;
059  }elseif($sum_point >= 15000 && $sum_point < 30000){
060   $new_level = 9;
061  }elseif($sum_point >= 30000){
062   $new_level = 10;
063  }
064  $squery = ", mb_level = '$new_level'";
065 }

 

 

이부분 왜 한번 더 넣으셨어요 이거 삭제하세요 

 if($is_admin){

    $squery = ", mb_level = '10'";

 

 

이 부분이 문제인 것 같은데요?

 

관리자가 포인트를 줄때에 해당 회원은 레벨 10이 되는 로직 같아요.

 

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

회원로그인

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