如何使用 php pdo 中的 2 个表获取 1 个表用户详细信息?

Posted

技术标签:

【中文标题】如何使用 php pdo 中的 2 个表获取 1 个表用户详细信息?【英文标题】:How to fetch 1 table users details using 2 table in php pdo? 【发布时间】:2018-04-19 08:49:11 【问题描述】:

您好,任何人都可以帮助我尝试使用 php 和 pdo 方法从数据库中获取所有用户数据

我有两个表,1 个用于用户数据,2 个用于连接用户 id,

当用户 id 在 2 个表中退出时,我只想获取已连接的用户个人资料。

首先我检查了 2 个表是否存在用户 ID。例如一个用户连接到其他 2 个用户,我得到了用户 ID 并内爆到数组中。然后我曾经检查 1 个表 Where In (:usid) 但它只获取一个用户详细信息

如何使用 2 个数据库获取所有详细信息

    public function usrconnectedall()
        $bngusername2 = $_SESSION['bngusername'];
        $this->query("SELECT * FROM bng_users WHERE bng_username=:bngusername2");
        $this->bind(":bngusername2", $bngusername2);
        $row = $this->getSingleRow();

        //First Method (Requested) user profile id
        $bngrequesteduserid = $row['id'];

        $this->query("SELECT * FROM bng_connect WHERE bng_requesteduser_id=:bngrequesteduserid");
        $this->bind(":bngrequesteduserid", $bngrequesteduserid);
        $row2 = $this->resultSet();

        foreach ($row2 as $k) 
          $test[] = $k['bng_connecteduser_id'];
        
        $usid = implode(',', $test);


        $this->query("SELECT * FROM bng_users WHERE id IN (:usid)");
        $this->bind(":usid", $usid);
        $row3 = $this->resultSet();

        foreach ($row3 as $a)
           echo $a['bng_username'];
        


      

【问题讨论】:

使用JOIN从多个相互关联的表中获取数据 SELECT * FROM bng_connect INNER JOIN bng_users ON id = bngrequesteduserid; 这就是你要找的……? 首先使用用户名获取数据,获取连接的用户 ID,基于数组中的用户 ID 内爆。基于内爆数据,我需要在第一个表中搜索用户数据,我不想加入他们。 【参考方案1】:

这是我找到的答案。现在可以获取用户数据了

$usid = implode(',', $test);

    $this->query("SELECT * FROM bng_users WHERE  FIND_IN_SET (id, :usid)");
    $this->bind(':usid', $usid);
    $row3 = $this->resultSet();

    return $row3;

【讨论】:

这是为了编辑您的问题吗?因为它当然没有提供答案,但是您将其发布在答案部分。使用问题下方的“编辑”按钮添加额外信息。谢谢。

以上是关于如何使用 php pdo 中的 2 个表获取 1 个表用户详细信息?的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的pdo

如何在使用 PHP-PDO 记录查询时获取最后一个插入 ID

如何使用 PDO 在 PHP 中获取结果数组?

如何使用 PDO 在 PHP 中获取结果数组?

php+mysql 请问:用pdo如何获取某个表中记录的数目?

php+mysql 请问:用pdo如何获取某个表中记录的数目?