如何在PHP中执行2 while循环mysqli_查询?

如何在PHP中执行2 while循环mysqli_查询?,php,mysqli,Php,Mysqli,我的以下代码无法正常工作: <?php $result1 = mysqli_query($conn, "SELECT * FROM bicycle_list"); while($res1 = mysqli_fetch_assoc($result1)){ $bike_id = $res1['bike_id']; $result2 = mysqli_query($conn, "SELECT * FROM bicycle WHERE bicyle_id = $bike_id")

我的以下代码无法正常工作:

<?php
$result1 = mysqli_query($conn, "SELECT * FROM bicycle_list");
while($res1 = mysqli_fetch_assoc($result1)){
    $bike_id = $res1['bike_id']; 
    $result2 = mysqli_query($conn, "SELECT * FROM bicycle WHERE bicyle_id = $bike_id");
    while($res2 = mysqli_fetch_assoc($result2)){
?> 
        <td><?php echo $res2['name']; ?></td>
<?php
    }
}
?>


我如何纠正这个问题

您想使用SQL联接。您的基本查询如下所示:

SELECT *
FROM bicycle_list INNER JOIN bicycle ON bicycle.bicycle_id = bicycle_list.bikeid;

但是,您确实应该阅读有关SQL联接如何工作的教程,而不是只按原样使用此代码。

您想使用SQL联接。您的基本查询如下所示:

SELECT *
FROM bicycle_list INNER JOIN bicycle ON bicycle.bicycle_id = bicycle_list.bikeid;

但是,您确实应该阅读有关SQL联接如何工作的教程,而不是只按原样使用此代码。

您想使用SQL联接。您的基本查询如下所示:

SELECT *
FROM bicycle_list INNER JOIN bicycle ON bicycle.bicycle_id = bicycle_list.bikeid;

但是,您确实应该阅读有关SQL联接如何工作的教程,而不是只按原样使用此代码。

您想使用SQL联接。您的基本查询如下所示:

SELECT *
FROM bicycle_list INNER JOIN bicycle ON bicycle.bicycle_id = bicycle_list.bikeid;


但是,您确实应该阅读一本关于SQL联接如何工作的教程,而不仅仅是按原样使用此代码。

“不能正常工作”是如何工作的?一般规则:如果您运行的是嵌套查询,而内部查询依赖于外部查询的值,那么您几乎总是可以/应该重新写入以使用单个
JOIN
ed查询。欢迎使用堆栈溢出。要格式化代码块,可以突出显示它,然后单击编辑工具栏中的
{}
,或
ctl-k
。用反引号括起来是为了内联代码,对代码块不起作用。我会记住这一点。我是PHP新手,不擅长sql。顺便说一句,如果有,你能给我一个样本查询这个吗?谢谢这是在做什么,但工作不正常?如果我们不知道问题是什么,我们就不能给出一个示例查询。@JustinE已经被Marc和Andy解决了。更正Andy给出的下面的示例查询:)“工作不正常”如何?一般规则:如果您运行的是嵌套查询,而内部查询依赖于外部查询的值,那么您几乎总是可以/应该重新写入以使用单个
JOIN
ed查询。欢迎使用堆栈溢出。要格式化代码块,可以突出显示它,然后单击编辑工具栏中的
{}
,或
ctl-k
。用反引号括起来是为了内联代码,对代码块不起作用。我会记住这一点。我是PHP新手,不擅长sql。顺便说一句,如果有,你能给我一个样本查询这个吗?谢谢这是在做什么,但工作不正常?如果我们不知道问题是什么,我们就不能给出一个示例查询。@JustinE已经被Marc和Andy解决了。更正Andy给出的下面的示例查询:)“工作不正常”如何?一般规则:如果您运行的是嵌套查询,而内部查询依赖于外部查询的值,那么您几乎总是可以/应该重新写入以使用单个
JOIN
ed查询。欢迎使用堆栈溢出。要格式化代码块,可以突出显示它,然后单击编辑工具栏中的
{}
,或
ctl-k
。用反引号括起来是为了内联代码,对代码块不起作用。我会记住这一点。我是PHP新手,不擅长sql。顺便说一句,如果有,你能给我一个样本查询这个吗?谢谢这是在做什么,但工作不正常?如果我们不知道问题是什么,我们就不能给出一个示例查询。@JustinE已经被Marc和Andy解决了。更正Andy给出的下面的示例查询:)“工作不正常”如何?一般规则:如果您运行的是嵌套查询,而内部查询依赖于外部查询的值,那么您几乎总是可以/应该重新写入以使用单个
JOIN
ed查询。欢迎使用堆栈溢出。要格式化代码块,可以突出显示它,然后单击编辑工具栏中的
{}
,或
ctl-k
。用反引号括起来是为了内联代码,对代码块不起作用。我会记住这一点。我是PHP新手,不擅长sql。顺便说一句,如果有,你能给我一个样本查询这个吗?谢谢这是在做什么,但工作不正常?如果我们不知道问题是什么,我们就不能给出一个示例查询。@JustinE已经被Marc和Andy解决了。下面安迪给出的示例查询正确:)注意连接上下文中的
选择*
。如果某些列的名称相似,则很可能会失去对关联获取中某些列的访问权限。通常,切勿在生产代码中选择*。最好明确说明你需要的栏目。@MichaelBerkowski:同意。我通常会更直接地说:“SELECT*是一个bug”,但这里只想介绍一个概念。如果某些列的名称相似,则很可能会失去对关联获取中某些列的访问权限。通常,切勿在生产代码中选择*。最好明确说明你需要的栏目。@MichaelBerkowski:同意。我通常会更直接地说:“SELECT*是一个bug”,但这里只想介绍一个概念。如果某些列的名称相似,则很可能会失去对关联获取中某些列的访问权限。通常,切勿在生产代码中选择*。最好明确说明你需要的栏目。@MichaelBerkowski:同意。我通常会更直接地说:“SELECT*是一个bug”,但这里只想介绍一个概念。如果某些列的名称相似,则很可能会失去对关联获取中某些列的访问权限。通常,切勿在生产代码中选择*。最好明确说明你需要的栏目。@MichaelBerkowski:同意。我通常会更直接地说:“SELECT*是一个bug”,但这里只想介绍一个概念。