특정페이지 접속때 특정기간동안은 포인트 차감안되는 방법
아래는 하루에 한번 접속시 포인트 차감되는법으로 헐랭이님이 가르쳐 주신 방법인데요
<?
include_once("./_common.php");
if ($member['mb_id']) {
$sql = " select count(*) as cnt from $g4[point_table]
where mb_id = '$member[mb_id]'
and po_rel_table = '-point'
and po_rel_id = '$member[mb_id]'
and po_rel_action = '$g4[time_ymd]' ";
$row = sql_fetch($sql);
if ($row[cnt]) {
alert_close("하루 한번만 접속이 가능 합니다.");
}else {
insert_point($member['mb_id'], -10, "포인트 감소", "-point", $member['mb_id'], $g4['time_ymd']);
}
} else {
alert_close("로그인 하세요..");
}
?>
include_once("./_common.php");
if ($member['mb_id']) {
$sql = " select count(*) as cnt from $g4[point_table]
where mb_id = '$member[mb_id]'
and po_rel_table = '-point'
and po_rel_id = '$member[mb_id]'
and po_rel_action = '$g4[time_ymd]' ";
$row = sql_fetch($sql);
if ($row[cnt]) {
alert_close("하루 한번만 접속이 가능 합니다.");
}else {
insert_point($member['mb_id'], -10, "포인트 감소", "-point", $member['mb_id'], $g4['time_ymd']);
}
} else {
alert_close("로그인 하세요..");
}
?>
위와 같이 하면 하루에 한번씩 포인트가 차감됩니다~
하루에 한번이 아닌 특정 기간을 정해서 포인트가 그 기간동안에는 1번만
차감되는 방법이 궁금합니다~
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 11개
<?
include_once("./_common.php");
if ($member['mb_id']) {
//현재 페이지에 들어간 회원의 현재 페이지에서 발생한 마지막 포인트 리스트를 한개만 가져온다. -point <- 이게 페이지 인식이다.
$sql_common = " from $g4[point_table] where po_rel_table = '-point' and mb_id = '$member[mb_id]' ";
$sql_order = " order by po_id desc ";
$sql = " select *
$sql_common
$sql_order
limit 1 ";
$result = sql_query($sql);
//마지막 날짜에서 몇일후?
//날자지정
$sdatam ="3";
// if ($result[po_rel_action] <= $g4[time_ymd] - ($sdatam * 86400)) {
if ($result[po_rel_action]<= date("Y-m-d", $g4[server_time] - ($sdatam * 86400))) {
alert_close("$sdatam 일에 한번만 접속이 가능 합니다.");
}else {
insert_point($member['mb_id'], -10, "포인트 감소", "-point", $member['mb_id'], $g4['time_ymd']);
}
} else {
alert_close("로그인 하세요..");
}
?>
아래처럼 해야 할듯 합니다.
if ($result[po_rel_action]<= date("Y-m-d", $g4[server_time] - ($sdatam * 86400))) {
잠시만 기다려 주세요. 제가 직접 테스트를 해본후 알려 드리겠습니다.
비교 연산에서 무조건 걸리게 되므로 에러가 발생이 되네요.^^
아래의 코드로 테스트 해보세요. 테스트는
현재 페이지에서 포인트 차감이된 리스트가 한개도 없는 회원과
리스트가 1개이상 존재하는 회원으로 테스트를 해보세요.
<?
include_once("./_common.php");
if ($member['mb_id']) {
//현재 페이지에 들어간 회원의 현재 페이지에서 발생한 마지막 포인트 리스트를 한개만 가져온다. -point <- 이게 페이지 인식이다.
$sql_common = " from $g4[point_table] where po_rel_table = '-point' and mb_id = '$member[mb_id]' ";
$sql_order = " order by po_id desc ";
$sql2 = " select count(*) as cnt $sql_common ";
$row = sql_fetch($sql2);
$total_count = $row[cnt];
$sql = " select *
$sql_common
$sql_order
limit 1 ";
$result = sql_query($sql);
//마지막 날짜에서 몇일후?
//날자지정
$sdatam ="3";
if ($total_count > 0){
// if ($result[po_rel_action] <= $g4[time_ymd] - ($sdatam * 86400)) {
if ($result[po_rel_action] <= date("Y-m-d", $g4[server_time] - ($sdatam * 86400))) {
alert_close("$sdatam 일에 한번만 접속이 가능 합니다.");
}else {
insert_point($member['mb_id'], -10, "포인트 감소", "-point", $member['mb_id'], $g4['time_ymd']);
}
} else {
insert_point($member['mb_id'], -10, "포인트 감소", "-point", $member['mb_id'], $g4['time_ymd']);
}
} else {
alert_close("로그인 하세요..");
}
?>
내일 오전중으로 테스트 하고 댓글 달아 놓겠습니다. 관심가지고 끝까지 답변 주셔서
너무 감사드립니다~
리스트에 없는 아이디는 바로 되구요!!
어제 하루에 한번 차감된 포인트리스트에 존재한 아이디는 현재 3일 날짜로 대체되어 메세지가 뜹니다~ 감사합니다~