首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP mysqli只显示一个用户

PHP mysqli只显示一个用户
EN

Stack Overflow用户
提问于 2016-06-08 12:04:07
回答 2查看 120关注 0票数 0

我想要做到这一点

  • 约翰->子用户
  • 约翰->子用户
  • 标记->子用户
  • 标记->子用户
  • 戴夫->子用户
  • 戴夫->子用户

但这是意外的结果

  • 约翰->子用户
  • 约翰->子用户

只有用户名john 出现了

代码语言:javascript
复制
// Get all the users
$s = $sqlConnection->query('SELECT * FROM accounts');

while ($row = $s->fetch_assoc())
{
    $uarr = explode(',', $row['username']);

    foreach ($uarr as $ueach)
    {        
        // Get all the direct sales
        $query = "SELECT *";
        $query .= " FROM accounts ACC";
        $query .= " INNER JOIN info INF ON ACC.user_id = INF.iuid";
        $query .= " INNER JOIN sales SAL ON ACC.user_id = SAL.suid";
        $query .= " WHERE SAL.mentor = '$ueach'";

        $s = $sqlConnection->query($query);

        if (!$s) 
        {
            die($sqlConnection->error);
        }

        while ($row = $s->fetch_assoc())
        {
            echo $ueach . ' -> ' . $row['username'] . '<br/>';
        }
    }
}

这是数据库结构

账号

代码语言:javascript
复制
user_id | username |
--------+----------+
 1      | john     |
--------+----------+
 2      | mark     |
--------+----------+
 3      | dave     |
--------+----------+

信息

代码语言:javascript
复制
iuid     |
---------+
1        |
---------+
2        |
---------+
3        |
---------+

销售量

代码语言:javascript
复制
suid    | mentor   |
--------+----------+
 1      | john     |
--------+----------+
 2      | mark     |
--------+----------+
 3      | dave     |
--------+----------+
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-08 12:13:17

您可以使用一个查询获取所有数据,而不是使用两个查询。由于连接了所需的数据,所以可以随时获得:

代码语言:javascript
复制
SELECT SAL.mentor AS mentor, ACC.username AS username
FROM accounts ACC
LEFT JOIN info INF ON ACC.user_id = INF.iuid
LEFT JOIN sales SAL ON ACC.user_id = SAL.suid
ORDER BY SAL.mentor

当您返回行时,您将可以使用$row['mentor']$row['username']

代码语言:javascript
复制
$query = "SELECT SAL.mentor AS mentor, ACC.username AS username ";
$query .= "FROM accounts ACC ";
$query .= "LEFT JOIN info INF ON ACC.user_id = INF.iuid ";
$query .= "LEFT JOIN sales SAL ON ACC.user_id = SAL.suid ";
$query .= "ORDER BY SAL.mentor ";

$s = $sqlConnection->query($query);

if (!$s) 
{
     die($sqlConnection->error);
} 
else 
{
    while ($row = $s->fetch_assoc())
   {
        echo $row['mentor'] . ' -> ' . $row['username'] . '<br/>';
   }

}
票数 3
EN

Stack Overflow用户

发布于 2016-06-08 12:20:54

您正在重新分配覆盖$s的结果集

为内部循环查询选择不同的变量

代码语言:javascript
复制
$second = $sqlConnection->query($query);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37701974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档