提问人:Parsa Yazdani 提问时间:4/17/2020 更新时间:4/17/2020 访问量:177
创建嵌套 SQL 循环
Create a nested SQL loop
问:
如何使用 PHP 制作嵌套的 SQL 循环?
我正在尝试从行(主键)所在的表中输出所有 '。在该循环中,我想运行另一个循环以从表中输出,其中(不是主键)是第一个循环的输出。bundle_id
packages
user
$username
blacklist
access
bundle_id
这是我的代码:
$sql = "SELECT bundle_id FROM packages WHERE user='" . $username . "'";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
echo $row['bundle_id'];
$sql = "SELECT blacklist FROM access WHERE bundle_id='" . $row['bundle_id'] . "'";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
echo $row['blacklist'];
}
}
我的代码的问题在于它只输出表中的第一行。access
答:
3赞
Lukas Eder
4/17/2020
#1
你在两个循环中重复使用相同的局部变量,这就是为什么你没有得到正确的结果。但更好的是,使用:$row
$result
JOIN
SELECT a.blacklist
FROM access a
JOIN packages p ON a.bundle_id = p.bundle_id
WHERE p.user = ?
请注意,我正在使用绑定变量来防止 SQL 注入/语法错误等。
评论
0赞
Parsa Yazdani
4/17/2020
我将如何在我的脚本中实现它?
2赞
Lukas Eder
4/17/2020
@ParsaYazdani:见 php.net/manual/en/mysqli-stmt.bind-param.php
评论