ホームページ >データベース >mysql チュートリアル >MySQL の「mysql_fetch_array()」が最初の行だけを返すのはなぜですか?

MySQL の「mysql_fetch_array()」が最初の行だけを返すのはなぜですか?

DDD
DDDオリジナル
2024-12-01 16:20:15883ブラウズ

Why Does My MySQL `mysql_fetch_array()` Only Return the First Row?

MySQL インタラクションにおける単一行の取得を理解する

提供されたコードでは、mysql_query() 関数を利用して結果を取得しています。 MySQL データベースから設定し、その後 mysql_fetch_array() を使用して行をフェッチしようとします。ただし、最初の行のみにアクセスできるという問題が発生しています。

mysql_fetch_array() 関数は、結果セットから行を取得し、それをインデックス付き配列として表します。あなたの場合、各行は、「a」、「b」、または「c」で始まる一致するアーティスト名のセットに対応します。

初めて mysql_fetch_array() を実行すると、最初の結果セットの行が $array_result 変数に格納され、$array_result[0] が使用可能になります。ただし、パラメータを指定せずに後続の mysql_fetch_array() を呼び出すと、常に最初の行が返され、以前の結果が上書きされます。

結果セットから複数の行をフェッチするには、mysql_fetch_array() 関数をループ。たとえば、while または foreach ループを使用して結果セットを反復処理し、各反復内で mysql_fetch_array() を呼び出し、結果の配列を変数に格納できます。これにより、各行に個別にアクセスし、必要に応じてその内容をエコーできるようになります。

これは while ループを使用した例です:

$array = mysql_query("SELECT artist FROM directory WHERE artist LIKE 'a%' OR artist LIKE 'b%' OR artist LIKE 'c%'");
while($row = mysql_fetch_array($array)) {
  var_dump($row); // Outputs contents of each row
}

このループは結果セットを反復処理し、各行の内容を確認できるため、クエリから利用可能なすべてのデータにアクセスしてエコーできるようになります。

以上がMySQL の「mysql_fetch_array()」が最初の行だけを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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