ホームページ >データベース >mysql チュートリアル >mysql_* 関数を使用して MySQL 結果セットを 2 回反復できますか?

mysql_* 関数を使用して MySQL 結果セットを 2 回反復できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-12 15:11:14252ブラウズ

Can I Iterate Through a MySQL Result Set Twice Using mysql_* Functions?

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 サイトの他の関連記事を参照してください。

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