【发布时间】:2021-06-10 11:08:01
【问题描述】:
我想在 PHP 中对 1 个数据库下的两个表运行 2 个查询。 第一个表名是 users_account 和 另一个是朋友。我正在使用数据库类并为此准备语句。
$me = $_COOKIE['current_user'];
第一次查询
$query = "select * from friends where (sender = '$me' || reciever = '$me')";
$result = $DB->read($query);
If($result){
foreach($result as $row){
}
}
我得到了超过 1 行的对象形成。 现在我正在尝试通过该行的发件人或收件人运行另一个查询。
第二次查询
$sql = "select * from users_account where authentication != $row->sender || authentication != $row->reciever";
$result2 = $DB->read($sql);
If($result2){
echo $result2;
}
但问题是我通过第一个查询的最后一行获得了第二个查询的结果。我没有得到所有的结果。 我怎样才能得到所有的结果。
谢谢。
【问题讨论】:
-
您在哪里执行第二个查询 - 在 foreach 循环内,还是……?
-
为什么
friends表有sender和receiver列开头?用户成为朋友,与“发送”和“接收”有什么关系?大概你的friends表应该被称为messages或类似的东西......? -
我在foreach内外都试过了。但我无法得到我想要的结果
-
我正在尝试显示推荐的朋友,例如 facebook,而不是显示我发送的朋友请求用户。
-
您要么需要在循环中执行此操作,以便对从
friends表中读取的每条记录执行一个查询,要么创建一个查询,将发送者和接收者包装到 @987654330 @运营商。也有可能您的数据可以在一个查询中连接在一起,但到目前为止,您还没有向我们提供有关您的数据模型的足够信息。