我正在制作一个网站,您可以在其中发布帖子和阅读帖子,现在我正在编写一些代码来过滤这些帖子(例如按“新”或“最喜欢”排序)我有这个作为查询:$search_query="SELECT Posts.user, Posts.title, Games.name, Posts.text, Posts.time, Posts.attachementFROM Posts INNER JOIN Games ON Posts.game = Games.id WHERE Posts.game = '$game'AND tag = '$tag' AND subtag = '$subtag'"or die("The search_query on the database has failed!");正常的 $search_query 工作正常。现在,如果用户想要对帖子进行排序,例如上周,日期等的帖子,我想扩展此查询:if(!empty($_POST['time'])){ $search_query= "SELECT * FROM $search_query WHERE time < DATE_SUB(now(), INTERVAL $time)";}但是这个查询不起作用,因为我得到这个错误:mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in我已经读到这意味着查询中存在错误。有谁知道我该如何解决这个问题?
1 回答
慕村225694
TA贡献1880条经验 获得超4个赞
您需要做的就是简单地将附加子句添加到现有的 WHERE 中
if(!empty($_POST['time']))
{
$search_query .= " AND time < DATE_SUB(now(), INTERVAL $time)";
}
PS这里的on没有意义,因为你只是将文本放入字符串变量中,而不是执行它。or die()
$search_query="SELECT Posts.user, Posts.title, Games.name,
Posts.text, Posts.time, Posts.attachement
FROM Posts
INNER JOIN Games ON Posts.game = Games.id
WHERE Posts.game = '$game'
AND tag = '$tag' AND subtag = '$subtag'"
or die("The search_query on the database has failed!");
- 1 回答
- 0 关注
- 57 浏览
添加回答
举报
0/150
提交
取消