while循环里面循环MySQL

时间:2014-03-02 05:46:07

标签: php mysqli

我在MySQL中有两个表,一个商店都有一个主id键,但里面有不同的细节,例如:

table 1: | id | name | type |

table 2: | id | secondary id | more dateails |

我正在使用的简化代码:

$status = $mysqli->query("SELECT * FROM `table1`");

while($rows = $status->fetch_array(MYSQLI_BOTH)) 
{
    $id = $rows['id'];
    $conts_q = $mysqli->query("SELECT * FROM `table2` WHERE id='$id'");
    $conts_numr = $conts_q->num_rows;

    if($conts_numr==0)
    {
        //Display empty
    }
    else
    {
        while($row2 = $conts_q->fetch_array(MYSQLI_BOTH))
        {
            //Get details and display
        }
    }
}

如果第二个表没有内容,它会显示它很好,但如果确实如此,它会显示每个id的所有内容,而不仅仅是与它相关的内容,我似乎无法找到我做错了什么。如果我发布的代码不够,我会在这里发布完整的原始代码。

1 个答案:

答案 0 :(得分:2)

正如评论中所述,获取此数据的最佳方法是使用JOIN

SELECT * FROM `table1` t1
INNER JOIN `table2` t2 ON t1.id = t2.id

您可能需要按摩返回的列,例如井。