【问题标题】:Running two mySql queries to get data运行两个 mySql 查询以获取数据
【发布时间】: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 表有senderreceiver 列开头?用户成为朋友,与“发送”和“接收”有什么关系?大概你的friends 表应该被称为messages 或类似的东西......?
  • 我在foreach内外都试过了。但我无法得到我想要的结果
  • 我正在尝试显示推荐的朋友,例如 facebook,而不是显示我发送的朋友请求用户。
  • 您要么需要在循环中执行此操作,以便对从 friends 表中读取的每条记录执行一个查询,要么创建一个查询,将发送者和接收者包装到 @987654330 @运营商。也有可能您的数据可以在一个查询中连接在一起,但到目前为止,您还没有向我们提供有关您的数据模型的足够信息。

标签: php mysql


【解决方案1】:

试试这个

$sql = "select * from users_account where (authentication != $row->sender) || (authentication != $row->receiver)";

【讨论】:

  • 试过这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
  • 1970-01-01
  • 2018-07-16
  • 1970-01-01
相关资源
最近更新 更多