(소스 수정부탁) 특정 게시판 의 글쓰기 포인트는 한시간 지나서 지급하는 것에
special 게시판의 글쓰기 포인트는
1시간 지나서 포인트를 지급 하는 것인데요...
insert_point($member[mb_id], $board[bo_write_point], "$board[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');
----> 아래와 같이 수정해 보았습니다....근데 .. 시간지나서 포인트 지급이 안되어요~~
----> 고수님들께 부탁드립니다.
// 게시글이 등록된지 1시간이 지나서 포인트 지급하기 시도
//
////제한받을 게시판명을 적어주세요.
$table_name ="special";
$bo_table_name ="".$g4[write_prefix]."".$table_name."";
$after1day = date("Y-m-d", time() - (120 * 1));
$qrySql = sql_fetch("select wr_datetime from $write_table where wr_id = '$wr_id'");
if($g4[server_time] <= strtotime($after1day, strtotime($qrySql[wr_datetime])) )
{
// 포인트 부여
insert_point($member[mb_id], $board[bo_write_point], "$board[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');
}
/// 제한 게시판 외의 다른 게시판은 포인트 바로 지급
else{ insert_point($member[mb_id], $board[bo_write_point], "$board[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');
}
//
// 패쓰 끝
1시간 지나서 포인트를 지급 하는 것인데요...
insert_point($member[mb_id], $board[bo_write_point], "$board[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');
----> 아래와 같이 수정해 보았습니다....근데 .. 시간지나서 포인트 지급이 안되어요~~
----> 고수님들께 부탁드립니다.
// 게시글이 등록된지 1시간이 지나서 포인트 지급하기 시도
//
////제한받을 게시판명을 적어주세요.
$table_name ="special";
$bo_table_name ="".$g4[write_prefix]."".$table_name."";
$after1day = date("Y-m-d", time() - (120 * 1));
$qrySql = sql_fetch("select wr_datetime from $write_table where wr_id = '$wr_id'");
if($g4[server_time] <= strtotime($after1day, strtotime($qrySql[wr_datetime])) )
{
// 포인트 부여
insert_point($member[mb_id], $board[bo_write_point], "$board[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');
}
/// 제한 게시판 외의 다른 게시판은 포인트 바로 지급
else{ insert_point($member[mb_id], $board[bo_write_point], "$board[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');
}
//
// 패쓰 끝
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 7개
쿼리 자체가 잘못 된거 같은데요 1시간이 지난후 포인트를 비교를 한다면 포인트를 해당 글쓴이에게 포인트를 지급하는거 아닌가요 ? 위와 같이 쿼리를 날리면 넘어온 테이블의 게시물과 비교를 하겠죠
즉 만약에 해당 게시물의 지금 작성된 게시물의 wr_id 값이 15라고 하면 special 게시판의 15번 게시물에 대한 셀렉트를 하게 되는데 당연히 시간 비교자체가 되지 않겠죠
$qrySql = sql_fetch("select wr_datetime from $write_table where wr_id = '$wr_id'");
1시간 이후면 이미 작성된 게시물에 대해서 포인트를 지급해야 하므로 해당 작성자의 최근 게시물 한개를 비교해서 포인트를 지급해야 하는게 아닌지 ...
$qrySql = sql_fetch("select wr_datetime from $write_table where mb_id = $member[mb_id] and wr_id < $wr_id order by wr_datetime desc limit 1");
참고로 작성자의 이전에 게시물과 비교를 할려면 이렇게 쿼리를 날려야 하는게 아닌지 ..
해당 작성자가 해당 게시판에서 작성한 게시물이 있다면 지금 넘어온 게시물보다 작은 1개만 불러 와서 비교를 해야 겠죠 그래야 이 게시물 이전에 작성한 게시물 1개가 나올 테니 그리고 포인트 인서트 할때 해당 게시물 번호로 포인트가 지급된게 있으면 업대이트를 하지 않으면 되죠
근데 이 인서트문을 어디서 날리는지 모르니 ..
제가 먼가 생각을 잘 못하고 있는듯 합니다..
암튼 초보의 시도에 관심주셔서 감사합니다
아래의 마스타님 말씀대로 전체 회원에게 포함되는건지 10분마다 주기적으로 크론이 돌아서 업대이트 해줘야 하는건지등등 말이죠
파일에서
//쓰기 포인트 부여
<중략>
insert_point($member[mb_id], $board[bo_write_point], "$board[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');
<하략>
이 부분을 수정해 보려고 햇던 겁니다.
주기적으로 배치 돌면서 체크해야 하는 거라서..
crontab 이나 디비스케줄.. 등에서 처리해야 할 것 같습니다.
감사합니다