猿问

在另一个查询中使用查询作为 PHP 变量

我正在制作一个网站,您可以在其中发布帖子和阅读帖子,现在我正在编写一些代码来过滤这些帖子(例如按“新”或“最喜欢”排序)


我有这个作为查询:


$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!");

正常的 $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

我已经读到这意味着查询中存在错误。有谁知道我该如何解决这个问题?


慕后森
浏览 58回答 1
1回答

慕村225694

您需要做的就是简单地将附加子句添加到现有的 WHERE 中if(!empty($_POST['time'])){&nbsp; &nbsp; $search_query .= " AND time < DATE_SUB(now(), INTERVAL $time)";}PS这里的on没有意义,因为你只是将文本放入字符串变量中,而不是执行它。or die()$search_query="SELECT Posts.user, Posts.title, Games.name,&nbsp;Posts.text, Posts.time, Posts.attachementFROM Posts&nbsp;INNER JOIN Games ON Posts.game = Games.id&nbsp;WHERE Posts.game = '$game'AND tag = '$tag' AND subtag = '$subtag'"or die("The search_query on the database has failed!");
随时随地看视频慕课网APP
我要回答