등업을 포인트건별로가 아닌, 특정포인트에 도달하면 권한을 올려주고 싶어요.

등업을 포인트건별로가 아닌, 특정포인트에 도달하면 권한을 올려주고 싶어요.

QA

등업을 포인트건별로가 아닌, 특정포인트에 도달하면 권한을 올려주고 싶어요.

본문

안녕http://하세요~ 오늘은 자동등업에 대해서 한가지만 여쭤보려고 합니다. 원래는 쫑곰이​님께서

'포인트 내역 갯수에 따라 자동등업하기' 입니다.

원문을 그대로 적어보자면

common.lib.php 소스 insert_point 에  auto_levle($mb_id) 부르고 

auto_level 함수를 추가합니다. 

현재 설정은 10개 단위로 레벨업을 시켰으며 switch 문을 수정하여 등업 조건을 설정할 수 있습니다. 

라고 나와있습니다...

 

common.lib.php에 , 소스코드를 넣어서, 다음과 같은 조건을 만들고 싶습니다...  ㅠ_ㅠ'

어려울지 모르겠지만... 혹시여러분들께서 도와주실까 싶어서요..

 

제가 원하는건, 포인트를 건별로가 아닌, 특정포인트에 도달하면 권한을 올려주는겁니다.

예를 들어서 설명 드리자면, 권한2의 회원이 포인트가 154만이 되면, 권한3으로 등업, (기존 154만 포인트삭감.)

권한3인 회원은 0점부터 시작, 이후 권한3의 회원이 포인트가 다시 154만이 되면, 권한4로 등업.

이런식으로... 해서 권한6까지만 올라가고, 이후부턴 포인트차감없이 그냥 계속 누적시키는것으로

만들고싶은데, 너무 관련지식이 없다보니 , 여러분들께 도움을 요청하고 싶어요.

 

아래 PHP파일은 :  http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=33483

이곳에서 들고온 common_131216_rhm.lib.php (2.6K)​ 라는 파일입니다. (이걸 그대로 lib폴더에 넣는건 아닌거 같고

아래 코드 내용을 복사해서, common.lib.php 속에 넣어주는거 같아보여요..​

 

너무 터무니 없이 큰걸 여쭈어 보는건 아닌가 싶은데...ㅠ_ㅠ;

꼭 필요한 기능이라 , 염치불구하고, 이렇게 질문올립니다...도움 부탁드려요.

 

다운로드 받은 common_131216_rhm.lib.php 입니다.


<?
/*
* 자동등업 
* 포인트 부여 할 때 마다 자동 등업을 시켜줌
* 자동등업 조건 [포인트 내역 갯수 검사]
* added by 2013-12-16 by RHM http://blog.daum.net/hyemi1213/13
*/
// 포인트 부여
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];
 
    // 포인트 UPDATE
    $sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
    sql_query($sql);
 
	auto_level($mb_id); // 포인트 내역에 따른 자동 등업
    return 1;
}
 
// 포인트 내역에 따른 자동 등업  added by 2013-12-16 by RHM http://blog.daum.net/hyemi1213/13
function auto_level($mb_id) {
	$point = sql_fetch("SELECT count(*) as cnt FROM $g4[point_table] where mb_id = '$mb_id' ");
 
	switch ($point[cnt]/10) {		// 10 개단위로 레벨업
		case 0: case 1:		//19개 까지는 level 1
			$level = '1';
			break;
		case 2: case 3:		//39개 까지는 level 2
			$level = '2';
			break;
		case 4: case 5:		//59개 까지는 level 3
			$level = '3';
			break;
		default:
			$level = '1';
			break;
	}
 
	$sql = "UPDATE $g4[member_table] set mb_level = '$mb_levle' where mb_id = '$mb_id' ";
	sql_query($sql);
}
?> 

 

원본 common.lib.php 부분에서 위 소스코드와 비슷한 문장이 있는부분만 복사 붙여넣기 했습니다


// 포인트 부여
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];
 
    // 포인트 UPDATE
    $sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
    sql_query($sql);
 
    return 1;
} 

이 질문에 댓글 쓰기 :

답변 1

http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=30919&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%ED%8F%AC%EC%9D%B8%ED%8A%B8

 

이걸 응용하면 되겠네요 

또는

참고하시고 g5를 g4로 po_mb_point를 sum_point로 변경하시면 되요

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

회원로그인

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