포인트에 따른 자동 레벨업 채택완료
일정 포인트에 도달하면 레벨이 자동으로 변하게 하고 싶습니다.
/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 포인트
우엉수를설
10년 전
$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 | } |
이부분 왜 한번 더 넣으셨어요 이거 삭제하세요
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
10년 전
if($is_admin){
$squery = ", mb_level = '10'";
이 부분이 문제인 것 같은데요?
관리자가 포인트를 줄때에 해당 회원은 레벨 10이 되는 로직 같아요.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택