使用PHP/mySQL,每天向用户的会员账户授予一个整数积分。我将使用以下mysql字段来确定是否应该授予积分:创建日期(时间戳)和上次登录(UNIX TIME)。
在用户登录时确定授予这些积分的程序。我的问题是,确定自上次登录以来过去了多少天最有效的方法是什么?其次,如果用户每天登录,如何确定是否已过去24小时并授予一个积分?过去的天数等于给定的积分(每天1个)。
目前,我正在使用以下代码:
在用户登录时确定授予这些积分的程序。我的问题是,确定自上次登录以来过去了多少天最有效的方法是什么?其次,如果用户每天登录,如何确定是否已过去24小时并授予一个积分?过去的天数等于给定的积分(每天1个)。
目前,我正在使用以下代码:
/*
** Updates Points based on days since last visit
*/
static function UpdatePoints($username)
{
$getlog = System::$mySQL->Select("lastLog, creation FROM users WHERE username='$username'");
$log = System::$mySQL->Fetch($getlog);
$offset = (TIME() - $log['lastLog']) / 86400; // 24hrs
$lastlog = round($offset); // in days
if($lastlog > 0)
{
System::$mySQL->Update("users SET points=points+".$lastlog." WHERE username='$username'");
}
}
除了标记之外,很明显我的代码是短视的。如果用户每天登录一次,他们不会获得积分。因此,我必须使用创建日期字段确定正确的方法。今天我无法理解它,有什么建议吗?谢谢。