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

포인트에 따른 자동 레벨업 채택완료

10년 전 조회 8,225

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

 

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

 

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

 

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

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

 

 

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

답변 2개

채택된 답변
+20 포인트
   $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이 되는 로직 같아요.

 

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

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

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

로그인

전체 질문 목록