我想计算用户的所有帖子,从过去一小时开始。这是我的代码:
$all_user_recent_posts=mysql_query("select * from user_post where user_id=$userid and where post_time >= DATE_SUB(NOW(),INTERVAL 1 HOUR);");
$count_user_recent_posts=mysql_num_rows($all_user_recent_posts);
此代码不起作用(值为0)。但是当我删除and where post_time >= DATE_SUB(NOW(),INTERVAL 1 HOUR)
时,它确实有用,但它会显示用户的所有帖子,而不是过去一小时的帖子。代码:
$all_user_recent_posts=mysql_query("select * from user_post where user_id=$userid;");
$count_user_recent_posts=mysql_num_rows($all_user_recent_posts);
答案 0 :(得分:4)
正如我在评论中所述,并将其作为社区维基发布,因为在回复点方面无法从中获取任何信息。
where user_id=$userid and where post_time
这是一个语法错误。
where user_id=$userid and post_time
where
子句使用一个,而不是多个,并由AND
或OR
分隔。
参考:
并且对您的查询进行错误检查也会告诉您相关信息。
并且还应根据您的查询进行检查,如果还有任何问题。
将or die(mysql_error())
添加到mysql_query()
错误报告是您可以使用的其他工具。
此外,post_time
列必须是有效的MySQL日期类型。
如果您尝试使用varchar
类型进行数学运算,那么它将无法正常工作,或者任何与日期无关的有效类型。
请教:
您不知道如何使用mysql_num_rows()
。
以下两个例子会有不同的反应。
if(mysql_num_rows($result) > 0)
和
if(mysql_num_rows($result) == 1)
答案 1 :(得分:0)
您的查询中还有一个位置 近
data.images
将此替换为
and where post_time >= DATE_SUB(NOW(),INTERVAL 1 HOUR);
希望有所帮助: - )