下面的代码创建html表数据。
第1行是正确的,返回带有$Row['LNAME']的column1,然后返回带有所有$row1['LNAME']结果的column2(共有四个)。
第2行及以后仅回显第1列和第2列中的一个空单元格。
while ($row = $sql->fetch_assoc()){
echo "<tr>";
echo "<td>";
echo $row['LNAME'];
echo "</td>";
echo "<td>";
while($row1 = $sql1->fetch_assoc()){
echo $row1['NAME'] . "<br>";
}
echo "</td>";
echo "</tr>";
}
似乎在内部循环完成后,它在外部循环的未来迭代中评估为false,我希望它评估为true。
我应该更改什么以使内部循环在外部循环求值之前不会求值为false?
这是因为您已经到了$sql1的末尾。你可以再次寻找它的开头,但我更喜欢将从DB和迭代中提取数据分开,所以我会这样写(以你的代码为起点):
$lname = array();
while($row = $sql->fetch_assoc()){
$lname[] = $row;
}
$name = array();
while($row1 = $sql1->fetch_assoc()){
$name[] = $row1;
}
foreach($lname as $lvalue) {
echo "<tr>";
echo "<td>";
echo $lvalue;
echo "</td>";
echo "<td>";
foreach($name as $value) {
echo $value . "<br>";
}
echo "</td>";
echo "</tr>";
}
您需要使用mysql_data_seek($rs, 0)
重置第一行的结果指针。这是在假设mysql
隐藏在对象后面的情况下进行的。对于mysqli
,分别使用mysqli_data_seek