【发布时间】:2016-10-08 16:34:35
【问题描述】:
我想实现这个
- john -> 子用户
- john -> 子用户
- 标记->子用户
- 标记->子用户
- dave -> 子用户
- dave -> 子用户
但这是出乎意料的输出
- john -> 子用户
- john -> 子用户
只出现了用户名john
// 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/>';
}
}
}
这是数据库结构
帐户
user_id | username |
--------+----------+
1 | john |
--------+----------+
2 | mark |
--------+----------+
3 | dave |
--------+----------+
信息
iuid |
---------+
1 |
---------+
2 |
---------+
3 |
---------+
销售额
suid | mentor |
--------+----------+
1 | john |
--------+----------+
2 | mark |
--------+----------+
3 | dave |
--------+----------+
【问题讨论】:
-
你确定
accounts表的每一行在sales和info表中都有一行吗?如果不是,您应该使用LEFT JOIN。 -
不确定为什么这里需要两个查询。看来您可以通过一次查询获得所有子用户及其导师。
-
在我看来,它仍然是一个非常糟糕的数据库设计
-
哎呀@RiggsFolly - 我错过了。
username中有什么内容?两个表都有username列吗?也许你应该向我们展示表格布局 keziah -
我会说这个 Wonce more 向我们展示
accounts.username列中的内容然后我就去做一些更有成效的事情
标签: php mysql arrays loops mysqli