0
我有一個while循環,其中包含另一個while循環。兩個循環都遍歷不同的mysql結果集。問題是第二次外部while循環調用inner while循環時,它不運行。 Mysql_fetch_row在迭代之後是否丟棄了自己?mysql_fetch_array while循環
下面是代碼看起來像什麼:
$counter = 0;
while ($r = mysql_fetch_row($result)){
$col = "";
$val = "";
while($d = mysql_fetch_row($dictionary)){
$key = $d[0];
for($i= 0; $i< count($tableColumNames); $i++){
if($tableColumNames[$i] == $key){
$col .= "`".$d[1]."` ,";
$val .= "`".$r[$i]."` ,";
/* echo $tableColumNames[$i]." table ColumnName <br>";
echo $d[1]." key<br>"; */
}
}
echo $key."round".$counter."<br>";
}
var_dump ($col);
var_dump ($val);
$counter++;
echo $counter;
}
這裏是輸出內容是這樣的:你可以看到,$結果包含了四個記錄和輸出顯示該循環是否正常工作。但是,$ dictionary結果集上的內部循環在第二次$ result被迭代時不會運行。任何想法爲什麼?我也嘗試使用mysql_fetch_array,但仍然是相同的結果。
感謝
'$ dictionary'結果資源中返回了多少行?每次調用其中一個'mysql_fetch *()'函數時,結果資源的內部指針都是高級的。如果你打算一遍又一遍地使用同一行,你需要用'mysql_data_seek()'重新調用資源,但最好先將它的所有行存儲在一個數組中,然後用它循環(而不是做循環結果資源時的主要邏輯) –
_BUT _...還請顯示創建這兩個結果資源的兩個查詢。這些查詢是否可以合併爲一個JOIN查詢,從而消除了許多複雜的循環邏輯? –
mysql_data_seek()工作。它不會生活在一個應用程序中,我只需要一些幫助來重新組織一個數據源,並且使用php來幫助我做到這一點。所以mysql_data_seek()會很好。謝謝! –