为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕后森 2022-08-19 10:53:38
我正在制作一个网站,您可以在其中发布帖子和阅读帖子,现在我正在编写一些代码来过滤这些帖子(例如按“新”或“最喜欢”排序)我有这个作为查询:$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!");


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 57 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信