2013-07-31 110 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

對不起,我已經對我的代碼進行了適當的編輯。 –