今天遇到一個問題$sql = $mysqli->query( "SELECT .... "
);我有一個查詢想套用到兩個 while上,但這樣卻只有第一個有反應<? while ($row = mysqli_fetch_array($sql)){ ?>A<? }?><? while ($row = mysqli_fetch_array($sql)){ ?>B<? }?>有辦法實現同一個查詢可以套用到兩個 while嗎?在同一頁。
2 回答

慕的地6264312
TA貢獻1817條經驗 獲得超6個贊
在第二個while前加一句 mysql_data_seek( $sql, 0 )
我不會php,語法有不對的地方請見諒。
<? while ($row = mysqli_fetch_array($sql)){ ?>A<? }?><? mysql_data_seek( $sql, 0 ); ?><? while ($row = mysqli_fetch_array($sql)){ ?>B<? }?>

四季花海
TA貢獻1811條經驗 獲得超5個贊
你可以先把fetch的結果保存到數組中然后再用數組來循環。
$rows=array();while($row=mysqli_fetch_array($result)) { $rows[]=$row; } foreach($rows as $row) { A } foreach($rows as $row) { B }
或者干脆用mysqli_fetch_all
,據說性能上有些許優勢:
$rows=mysqli_fetch_all($result, MYSQLI_BOTH);
注意mysqli_fetch_all
默認是MYSQLI_NUM
,和mysqli_fetch_array
不一樣,所以要加第二個參數。
添加回答
舉報
0/150
提交
取消