こんにちは、20 日間登録したメンバーがいるとしましょう。したがって、20 日後にメンバーがログインしなかった場合、ステータスが変更されます。ただし、MySQL データベースに として書き込まれているステータス変更日にのみ基づいていますyear-month-day
。したがって、ステータス変更日までに 20 日が経過すると、ステータスが変更されます。
これを行う方法を教えていただければ幸いです。
デビッド
アップデート:
コード:
$newStatus = "Non-Active - Driver Chose Non-Compliance";
$sql = "SELECT username,ATF FROM members WHERE username = 'test'";
$getcsvuser = $DBH->prepare($sql);
$getcsvuser->execute();
while($row = $getcsvuser->fetch(PDO::FETCH_ASSOC)){
$memusername = $row['username'];
$memATF = $row['ATF'];
if ($memATF != 0 || $memATF != "0")
{
$tsql = "SELECT username,status,memberview ,statuschangedate FROM csvdata WHERE memberview =:user";
$tgetcsvuser = $DBH->prepare($tsql);
$tgetcsvuser->execute(array(':user' => $memusername));
while($trow = $tgetcsvuser->fetch(PDO::FETCH_ASSOC)){
$csvstatus = $trow['status'];
$csvusername = $trow['username'];
$csvdate = $trow['statuschangedate'];
if($csvstatus == "Open" || $csvstatus == "Enrolled - Policyholder Follow-Up Required" || $csvstatus == "Enrolled - Employee Follow-Up Required" || $csvstatus == "Non-Active - Insurance Cancelled" || $csvstatus == "Non-Active, Unable to Monitor - Incidental Business use Exclusion" || $csvstatus == "Non-Active - Employee Not Covered Under Listed Policy" || $csvstatus == "Non-Active - PolicyHolder Cancelled Additional Interest")
{
$newsql = "UPDATE csvdata SET status = :newstatus WHERE statuschangedate < NOW() - INTERVAL :atf DAY AND username =:mem";
$newgetcsvuser = $DBH->prepare($newsql);
$newgetcsvuser->execute(array(':newstatus' => $newStatus, ':atf' => $memATF, ':mem' => $csvusername));
while($rrow = $newgetcsvuser->fetch(PDO::FETCH_ASSOC)){
echo "working";
}
}
}
}
}