2013-07-31 69 views
0

下面的代码创建html表数据。第二次迭代时内部嵌套while循环为假

第1行是正确的,并返回column1与$ row ['LNAME'],然后column2与所有的$ row1 ['名称']结果(有四个)。

行2及以后只回显column1和列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?

回答

0

这是因为您处于$ sql1的末尾。你可以再次寻求开始,但我的偏好是将数据从数据库和迭代中分离出来,所以我会这样写(用你的代码作为起点):

$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>"; 
} 
+0

感谢您的回复,您给我的代码返回了正确数量的字符串,并且它们位于正确的位置(单元格),但字符串都是'数组'。我需要找到指定['LNAME']和['NAME']的地方,再次感谢 – rosscosack

+0

我改变了你的行 echo $ lname; 至 echo $ lvalue ['LNAME']; 并将数组索引添加到$ value并且它可以工作 谢谢 – rosscosack

+0

对不起,我已经对我的代码进行了适当的编辑。 –