Php MySQL:如何计算和限制用户每小时提交的帖子数量?
我目前正在建立一个用户可以发布的网站(比如twitter上的推特),但我想限制用户每小时在网站上提交的帖子数量 这是我到目前为止所编写的代码,它输出了用户的帖子总数Php MySQL:如何计算和限制用户每小时提交的帖子数量?,php,mysql,Php,Mysql,我目前正在建立一个用户可以发布的网站(比如twitter上的推特),但我想限制用户每小时在网站上提交的帖子数量 这是我到目前为止所编写的代码,它输出了用户的帖子总数 $counter = mysql_query("SELECT COUNT(*) AS post_userID FROM post"); $num = mysql_fetch_array($counter); $count = $num["post_userID"]; echo("$count"); if($count > 2
$counter = mysql_query("SELECT COUNT(*) AS post_userID FROM post");
$num = mysql_fetch_array($counter);
$count = $num["post_userID"];
echo("$count");
if($count > 2) {
echo("You have exceeded the posting limits, please try again in 24 hours");
}
我的邮政桌
+------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------+------+-----+---------+----------------+
| postID |int(11) | NO | PRI | NULL | auto_increment |
| post_userID|int(11) | NO | | NULL | |
| message |VARCHAR(140)| NO | | NULL | |
| time |datetime | NO | | NULL | |
+------------+------------+------+-----+---------+----------------+
如你所见,我的数据库中存储了一个时间(datetime),它保存了文章提交的时间
例如:
+------------+------------+------------+----------+
| postID |post_userID | message | time |
+------------+------------+------------+----------+
| 1 | 25 | Hello Mike |1413620228|
| 2 | 26 | Hi John! |1413620332|
+------------+------------+------------+----------+
哦,顺便说一句,我的服务器类型是MySQL。您只需将时间戳除以3600并将其四舍五入为整数,如下所示:
SELECT
ROUND(time/3600) AS hours_since_epoch
FROM
posts
WHERE
port_userID = <user> AND hours_since_epoch = ROUND(UNIX_TIMESTAMP(NOW())/3600)
选择
四舍五入(时间/3600)为小时
从…起
帖子
哪里
端口\u userID=和自\u epoch=ROUND以来的小时数(UNIX\u时间戳(NOW())/3600)
这将返回用户本小时发布的帖子列表(大致)
另一种方法是查看用户在过去一小时内发布了多少内容:
SELECT
COUNT(*)
FROM
posts
WHERE
port_userID = <user> AND time > UNIX_TIMESTAMP(NOW()) - 3600
选择
计数(*)
从…起
帖子
哪里
port_userID=和time>UNIX_时间戳(NOW())-3600
一种方法是:
select count(*) from post
where post_userID = 25
and time >= date_add(now(), INTERVAL -1 HOUR);
这将为您提供过去一小时内该用户的帖子数量
我假设您有一个
users
表。在用户表中创建一个名为last\u post\u submit\u time
的列,然后每当用户提交帖子时,将该时间保存在其中。最后,每当用户提交post检查时,如果当前时间-最后一次提交时间>=一小时。我希望您能理解…我刚刚编辑了一些代码,以使您的代码适应我的代码,并且我已经开始工作:)我不能投票支持您的答案,因为我的声誉分数还不够,但我会选择这个作为答案。谢谢