지정한 날짜가 지난뒤에만 지급한 포인트를 쓸수 있게..
본문
답변 1
머리를 잘 굴려보면 어떻게하면 되겠다는 답이 나올 법 하긴한데
임시 테이블을 만들어서 10일 지나면 이동시키는 방법이 먼저 생각나지만 복잡해질 것 같고...
아래 방법은 오류는 없을지 테스트는 해보아야겠습니다만 비교적 쉬운 방법이 아닐까 싶습니다
G4용
1. common.lib.php
function insert_point(~~~)에서
포인트 합 구해서 update하는 부분 삭제
2. function delete_point(~~~)에서
// 포인트 내역의 합을 구하고 부분 수정
$sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
--> 수정
$day10 = date("Y-m-d 00:00:00", strtotime("-10 day"));
$sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' and po_datetime<'$day10' ";
3. extend 폴더에 mypoint_sum.php 화일을 만들고
<?
if($member[mb_id] && $member[mb_1]< $g4[time_ymd]){
$day10 = date("Y-m-d 00:00:00", strtotime("-10 day"));
$row = sql_fetch(" select sum(po_point) as sum_point from $g4[point_table] where mb_id = '$member[mb_id]' and po_datetime < '$day10'");
sql_query(" update $g4[member_table] set mb_point = '$row[sum_point]' , mb_1 = '$g4[time_ymd]' where mb_id = '$member[mb_id]' ");
$member[mb_point] = $row[sum_point];
}
?>
원리는
포인트 지급시 누적 합계는 구하지않는다
삭제시는 합계를 계산 하되 10일전 까지만 합계를 낸다
로그인하면 하루에 한번만 10일이전까지 누적합계를 낸다
- 누적 합계는 접속시 하루에 한번만 계산하므로 디비에 무리는 없을 것입니다
더 나은 방법이 있을지는 모르겠습니다