鍍金池/ 問答/PHP  數(shù)據(jù)庫/ 同一個查詢不能套用到兩個 while ?

同一個查詢不能套用到兩個 while ?

今天遇到一個問題

$sql = $mysqli->query(
              "SELECT .... "
            );

我有一個查詢想套用到兩個 while上,但這樣卻只有第一個有反應(yīng)

<? while ($row = mysqli_fetch_array($sql)){ ?>
A
<? }?>

<? while ($row = mysqli_fetch_array($sql)){ ?>
B
<? }?>

有辦法實現(xiàn)同一個查詢可以套用到兩個 while嗎?在同一頁。

回答
編輯回答
不將就

你可以先把fetch的結(jié)果保存到數(shù)組中然后再用數(shù)組來循環(huán)。

$rows=array();
while($row=mysqli_fetch_array($result)) {
$rows[]=$row;
}

foreach($rows as $row) {
A
}

foreach($rows as $row) {
B
}

或者干脆用mysqli_fetch_all,據(jù)說性能上有些許優(yōu)勢:

$rows=mysqli_fetch_all($result, MYSQLI_BOTH);

注意mysqli_fetch_all默認是MYSQLI_NUM,和mysqli_fetch_array不一樣,所以要加第二個參數(shù)。

2018年5月9日 11:05
編輯回答
北城荒

在第二個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
<? }?>
2017年3月1日 18:44