회원 여분필드2 날짜가 지났다면 레벨강등
본문
<?php
/*
업소회원에 제휴기간(여분필드2)가 지났다면
레벨 7로 강등
*/
$datetime = date('Y-m-d H:i:s', strtotime("-{$member['mb_2']}"));
$sql = " select * from {$g5['member_table']} where mb_today_login < '{$datetime}' ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
sql_query("update {$g5['member_table']} set mb_level = '7' where mb_id = '{$row[mb_id]}' ");
}
?>
회원 여분필드2에는 20170820 을 넣어논상태입니다.
로그인을 체크하여 멤버테이블 비교하여 크다면 해당회원 레벨을 7로 하려고하는데
날짜와 상관없이 전체회원 레벨이 변경되버리네요 ㅠㅠ
!-->답변 5
<?php
/*
업소회원에 제휴기간(여분필드2)가 지났다면
레벨 7로 강등
*/
$datetime = date('Y-m-d H:i:s', strtotime("{$member['mb_2']}"));
$sql = " select * from {$g5['member_table']} where mb_today_login > '{$datetime}' ";
//로그인 날짜가 mb_2의 날짜보다 크다면 회원레벨 7등급으로 변경
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
sql_query("update {$g5['member_table']} set mb_level = '7' where mb_id = '{$row[mb_id]}' ");
}
?>
이런식으로 해야 할 것 같습니다
!-->일반회원과 업소회원(?)을 분류한 필드가 있나요?
지금 select 와 update 시에 회원분류에 대한 정의가 없어서
전체로 바뀌는거 같네요.
업소회원을 지정한 필드가 있으면 where 절에 추가해 보세요.
select * from {$g5['member_table']} where mb_today_login < '{$datetime}' 해버리면
날짜가 남은 회원들이 전부다 선택되지 않나요?
select * from {$g5['member_table']} where CURRENT_DATE > '{$datetime}' 이런식이어야 하지 않나요?
$datetime =
date
(
'Y-m-d H:i:s'
,
strtotime
(
$member['mb_2']
));
이렇게 처리하셔야 할겁니다. 윗분처럼 하셔도 되겠지만요
다들 감사합니다 다른쪽으로 해당 회원일경우가 오류라서 맴돌았네요
답변을 작성하시기 전에 로그인 해주세요.