同じ結果に対して mysqli_fetch_array() を複数回使用する方法
データベース駆動型アプリを操作する場合、多くの場合、反復処理が必要になります。返されたデータ行。 MySQL では、mysqli_fetch_array() 関数はクエリ結果からデータを抽出する際に重要な役割を果たします。ただし、mysqli_fetch_array() を使用して同じ結果セットに複数回アクセスしようとすると、一般的な問題が発生し、予期しない動作が発生します。
この問題の理由は、mysqli_fetch_array() の動作に起因します。呼び出しごとに、結果セット内のカーソルが次の行に移動します。したがって、同じ結果に対してこれを 2 回使用すると、最初の 2 行にしかアクセスできなくなります。この制限を克服するには、データ操作を出力から分離する必要があります。
1.データのキャプチャ:
最初のステップでは、すべてのデータを配列に抽出します:
<code class="php">$db_res = mysqli_query( $db_link, $sql ); $data = array(); while ($row = mysqli_fetch_assoc($db_res)) { $data[] = $row; }</code>
または、PHP 5.3 の fetch_all() メソッドを使用します:
<code class="php">$db_res = mysqli_query( $db_link, $sql ); $data = $db_res->fetch_all(MYSQLI_ASSOC);</code>
2.データを複数回利用する:
配列にキャプチャしたら、それを複数回反復処理して、すべての行へのアクセスを保証できます:
<code class="php">// Top row foreach ($data as $row) {</code>
以上が同じ結果セットに対して mysqli_fetch_array() を複数回再利用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。