如何使用 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 记录查询时获取最后一个插入 ID