当某人第一次访问X页面时,我在表中插入了具有当前unix time()标记的新行.
我想每24小时为该用户插入一条新行.例如:
示例A)Bob,转到我的网站,它插入一行.12小时后,Bob返回,由于24小时还没有过去,所以它没有插入新行.
例B)Bob,到我的网站,插入一行.24小时后,Bob回来,它在经过24小时后插入新行.
我正在开玩笑,但是由于我的大脑被炸了,所以无法想到这是否正确.
$time = time();
$difference = 86400;
$timedifference = $time + $difference;
插入行时:
MysqL_query("INSERT INTO `logs` (`time`, `who`, `site`, `type`)
VALUES('" . $timedifference . "', '" . $ip . "', '" . $rid . "', 'out') ")
or die(MysqL_error());
在检查是否已超过24小时时:
MysqL_query("SELECT * FROM `logs`
WHERE `time` < '" . time() . "' AND `type` = 'out'
AND `site` = '" . $rid . "' AND `who` = '" . $ip . "'");
有人可以告诉我是否正确吗?
解决方法:
这是我想出的..似乎有效:
//log check
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$time = time(); //current time
$difference = 86400; //one day in seconds
$timedifference = $time + $difference; //time difference
$logQ = MysqL_query("SELECT * FROM `logs` WHERE `time` > '" . time() .
"' AND `type` = 'out' AND `site` = '" . $id .
"' AND `who` = '" . $ip . "'");
$logR = MysqL_num_rows($logQ);
if ($logR <= 0){
MysqL_query("INSERT INTO `logs` (`time`, `who`, `site`, `type`) VALUES('" .
$timedifference . "', '" . $ip . "', '" . $id . "', 'out') ") or
die(MysqL_error());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。