mysqli の結果を複数回ループする: より良いアプローチ
mysqli_fetch_array() を使用してデータベース データにアクセスするコンテキストでは、次のような問題が発生する可能性があります。結果セットを複数回繰り返す必要がある状況。ただし、指定されたコード スニペットに示されているように、同じ結果に対して mysqli_fetch_array() を 2 回使用しようとすると、効果的に機能しません。
データ操作と出力の分離
より効率的な解決策は、データ操作を出力から分離することです。データをフェッチして 1 回の手順で表示するのではなく、まずデータを選択して配列に保存する必要があります。このようにして、必要に応じて何度でもデータにアクセスして操作できます。
データの選択
データベースからデータを選択するには、次のコードを使用します。
$db_res = mysqli_query( $db_link, $sql ); $data = array(); while ($row = mysqli_fetch_assoc($db_res)) { $data[] = $row; }
このコードは SQL クエリを実行し、結果の各行を $data 配列に保存します。アクセスを容易にするために、fetch_array() の代わりに fetch_assoc() を使用して連想配列を返すことに注意してください。
データを複数回使用する
データが保存されたら$data 配列では、何度でも使用できます:
//Top row foreach ($data as $row) {
以上がmysqli の結果を複数回ループする方法: より良いアプローチ?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。