ホームページ >バックエンド開発 >PHPチュートリアル >同じ結果セットに対して「mysqli_fetch_array()」を複数回使用するにはどうすればよいですか?

同じ結果セットに対して「mysqli_fetch_array()」を複数回使用するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-02 08:15:03556ブラウズ

How Can I Use `mysqli_fetch_array()` Multiple Times on the Same Resultset?

mysqli_fetch_array() を複数回使用する

PHP と MySQL を使用してデータベースを操作する場合、同じクエリ結果に複数回アクセスする必要がある状況が発生することがあります。 mysqli_fetch_array() 関数を使用します。ただし、同じ結果セットに対して mysqli_fetch_array() を複数回使用しようとすると、空の出力が返されます。

これは、mysqli_fetch_array() が結果セット内のポインターをフェッチし、進めるためです。したがって、同じ結果を再度フェッチしようとすると、取得するデータが残りません。

この問題を解決するには、データ操作を出力から分離する必要があります。まず、データベースからすべてのデータをフェッチし、配列に保存します:

<code class="php">$db_res = mysqli_query($db_link, $sql);
$data = [];
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>

データを配列に保存したら、必要に応じて何度でも繰り返すことができます:

一番上の行:

<code class="php">foreach ($data as $row) {</code>

以上が同じ結果セットに対して「mysqli_fetch_array()」を複数回使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。