ホームページ >データベース >mysql チュートリアル >mysql_* 関数を使用して MySQL 結果セットを 2 回反復できますか?
mysql_* 関数を使用して MySQL 結果セットを操作する場合、一般的な疑問が生じます - ループ処理は可能ですか同じ結果セットを複数回?
通常、MySQL クエリをmysql_query は結果セットを生成します。これは、mysql_fetch_assoc を使用して走査され、個々の行に連想配列としてアクセスされます。デフォルトでは、結果セットが完全に走査された後、ポインターは最後に到達し、結果を再度ループすることはできなくなります。
ただし、ポインターをリセットして結果セットをループする回避策が存在します。
これを実現するには:
$result = mysql_query(/* Your query */); while($row = mysql_fetch_assoc($result)){ // Process the row here... } // Reset the pointer to the beginning mysql_data_seek($result, 0); while($row = mysql_fetch_assoc($result)){ // Process the row again... }
次のようにしてポインタを先頭に戻します。 mysql_data_seek(0) を使用すると、同じ結果セットを複数回走査することが可能です。
ただし、この方法は一般的に推奨されないことに注意してください。これは、結果セットの 1 回の反復内で必要なすべての処理を実行することに比べて、非効率的でエラーが発生しやすいと考えられています。
以上がmysql_* 関数を使用して MySQL 結果セットを 2 回反復できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。