PHP を使用して MySQL テーブルから複数の行を取得しようとすると、1 行だけが返される状況が発生することがあります。クエリ条件に一致する行が複数あるにもかかわらず。この問題は、コードの実装が正しくないために発生する可能性があります。
提供された PHP コード内:
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); $query2 = mysql_fetch_assoc($quer); print_r($query2);
問題は、mysql_fetch_assoc($quer) の使用内にあります。この関数は結果セットの最初の行のみを取得し、それを $query2 に割り当てます。クエリに一致するすべての行を取得するには、while ループを使用して結果セットを反復処理する必要があります。
修正されたコードは次のようになります。
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); while ($row = mysql_fetch_assoc($query)) { print_r($row); }
この変更により、各行がwhile ループ内で $row 変数を使用し、一致するすべての行を確実に取得して表示します。
以上が複数の行が存在する場合、PHP MySQL クエリが 1 行だけを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。