Php while循环内部while循环MySQL
我在MySQL中有两个表,一个存储都有一个主id键,但里面的细节不同,例如:Php while循环内部while循环MySQL,php,mysqli,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 =
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的所有内容,而不是只显示与它相关的内容,我似乎无法找到我做错了什么。如果我发布的代码不够,我将在此处发布完整的原始代码。如评论中所述,获取此数据的最佳方法是使用
连接
SELECT * FROM `table1` t1
INNER JOIN `table2` t2 ON t1.id = t2.id
您可能需要对返回的列等进行按摩。对服务器表示爱意并使用联接。请正确缩进代码。你在寻求帮助,尽可能使你的文章可读。这一次我帮你做了:)谢谢你,我马上试试这个解决办法,谢谢你code@durian另外,不要忘记使用prepared语句,因为您当前的代码对SQL注入非常开放。您已经在使用MySQLi了,请多做一些努力,并学习prepared语句;)