[英]Two MySQL while loops not working properly [PHP]
我有兩個while循環,都通過MySQL結果,請參見代碼:
$result1 = $sql->runQuery1();
$result2 = $sql->runQuery2();
while($record1 = mysqli_fetch_array($result1))
{
echo "$record1['id'] : ";
while($record2 = mysqli_fetch_array($result2))
{
echo "$record2['id'] <br> ";
}
}
上面的代碼只能在循環內運行一次,下面的代碼:
$result1 = $sql->runQuery1();
while($record1 = mysqli_fetch_array($result1))
{
$result2 = $sql->runQuery2();
echo "$record1['id'] : ";
while($record2 = mysqli_fetch_array($result2))
{
echo "$record2['id'] <br> ";
}
}
上面的代碼將在MySQL查詢中運行多次內部循環。 有沒有更有效的方法來遍歷該數據? 我不想每次都重新運行查詢。
如果以數組形式獲取結果,則應獲取所有結果。 對於PHP,我建議使用$results = $sql->runQuery1()
,它可以讓您在循環中遍歷結果:
foreach($results as $var) {
$var->doStuff(); // or display or whatever
}
你當然可以嵌套這些
foreach($results as $var) {
foreach($results2 as $var2) {
$var->doStuff($var2); //for example
}
}
這是手冊: http : //php.net/manual/de/control-structures.foreach.php
fetch_array和fetch_assoc會將查詢中一行中的所有字段都提供給關聯數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.