일정기간 이후 회원등급 변경

일정기간 이후 회원등급 변경

QA

일정기간 이후 회원등급 변경

답변 3

본문


if($member['mb_level'] == 3 and $is_member){       // 레벨이 3일때
 
 if($point['po_content'] == '강의실 입장' and (G5_TIME_YMDHIS - $point['po_datetime'] >30)){ ★
 
    $sql = "update {$g5['member_table']} set mb_level = 2 where mb_level = 3 and mb_id = '{$member['mb_id']}' ";
 
    sql_query($sql);
    
 }
}

 

login_check.php 에 들어갈 코드입니다.

처음 포인트로 강의실에 입장하면 권한이 3이 되고 이후 30일이 지나면 다시 권한이 2로 내려가는 로직을 짜고있습니다.

(오늘날짜) - (마지막으로 강의실로 입장하여 권한이 3이 되었던 날짜) > 30 이 되야할 것 같은데

저기 별표가 있는 줄이 헷갈립니다. 

고수님들의 의견을 구합니다.

이 질문에 댓글 쓰기 :

답변 3

포인트에 기록된 명칭이 '강의실 입장' 이고

현재일자가 포인트사용일보다 30일이 경과하면 

처리하려는것 같은데요

 

제대로 작동안할것 같습니다.

 

왜냐면.. 시분초 까지 함께보는 값이라 시분초의 차이가 30이 아니라

yyyymmddhhmmss 의 구분값이라서

구분해야할 값이 일자만가지고 계산해야 정확합니다.

시분초는 제외해야할거같네요

$point['po_datetime'] 이 아닌

쿼리를 불러올때 po_datetime 의 값을 

replace(date(po_datetime),'-','') as po_date 와 같이 변경하고

(G5_TIME_YMD - $point['po_date']) > 30 으로 변경해야 정상작동할겁니다.

검색하다보니 일자로 변경되는 함수도 있나보군요

TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS(po_datetime)) > 30 


코드를 뚫어져라 보다보니

궁금한것은 마지막으로 강의실에 입장하여 권한이 3이 된 날짜를 참조하여 계산하는 것인데

저렇게 코드를 작성하면 예전의 모든 강의실에 입장했던 날짜를 참조하여 틀리게 계산될 것인지

헷갈립니다.


도움 말씀 감사합니다.

문제에가 가장 먼저 정리되어야 하는 부분이

$point를 가져오는기준이 먼저 정리가 되어야합니다.

사용한 포인트중 강의실 입장에 사용한 최종일자를 기준으로 가져와야 할듯합니다.

http://gnuwiz.com/bbs/board.php?bo_table=gnu_tip&wr_id=38

가입일로부터 일정기간후 레벨을 조정하는 코드가 있으니

참고해보세요.

if($member['mb_level'] == 3 and $is_member){      // 레벨이 3일때
 
 

    $sql = "update {$g5['member_table']} set mb_level = 2 where TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS(po_datetime)) > 30 and po_content = '강의실 입장' and mb_level = 3 and mb_id = '{$member['mb_id']}' ";

    sql_query($sql);
   
 }

이렇게 고쳐봤습니다. 마지막에 강의실에 입장했던 날짜를 참조하도록만 하면 해결 될 것 같은데
맞게 동작할까요?

login_check 파일에서 처리를 할 경우 자동로그인 사용자는 체크되지 않는 문제가 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 34
© SIRSOFT
현재 페이지 제일 처음으로