gpt4 book ai didi

php - 通过 MySQL/PHP 中的 JOIN 回显行(?)

转载 作者:行者123 更新时间:2023-11-29 11:51:34 24 4
gpt4 key购买 nike

enter image description here

如果GroupnameUsername连接正确,我希望能够回显,其中当前userid(保存在 session 中)是$uid

我已经坐了好几个小时尝试各种 JOIN,最接近的是让它输出 1/?每个团队的成员,但不是全部。

编辑:

$uid = $_SESSION['uid'];
$sql = "SELECT * FROM group
INNER JOIN usergroup ON group.groupid=usergroup.groupid
WHERE usergroup.userid=$uid";
$result=$mysqli->query($sql);

if(mysqli_num_rows($result)>0) {
while($row = mysqli_fetch_array($result)) {
$gid = $row['groupid'];
$sql2 = "SELECT * FROM user
INNER JOIN usergroup ON user.userid=usergroup.userid
WHERE usergroup.groupid=$gid";
$result2=$mysqli->query($sql2);
$row2 = mysqli_fetch_array($result2);

echo "<td>".$row['groupname']."</td>";
echo "<td>".$row2['username']."</td>";
echo "<td>".$row['groupid']."</td>";
}
}

事实是,它工作得很好,除了它不会打印所有groupmembers名称,它只打印一个。哪一个似乎取决于表中的顺序。

最佳答案

第二个查询的结果集没有循环。但是,不需要第二个 SQL 查询。一口气做完; SQL 就是为此而设计的。

此外,您将获得更简单的代码:

$uid = $_SESSION['uid'];
// Select everything you need in one go (join user table as well)
$sql = "SELECT group.group_id, group.groupname, user.username
FROM group
INNER JOIN usergroup ON group.groupid=usergroup.groupid
INNER JOIN user ON user.userid=usergroup.userid
WHERE usergroup.userid=$uid";
$result=$mysqli->query($sql);

// Don't need to call mysqli_num_rows if you continue like this:
while($row = mysqli_fetch_array($result)) {
echo "<td>".$row['groupname']."</td>";
echo "<td>".$row['username']."</td>";
echo "<td>".$row['groupid']."</td>";
}

也许你想回显一些<tr></tr>标签,否则您将把所有内容都放在一行中,例如:

    echo "<tr><td>".$row['groupname']."</td>"
."<td>".$row['username']."</td>"
."<td>".$row['groupid']."</td></tr>";

关于php - 通过 MySQL/PHP 中的 JOIN 回显行(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33965221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com