ホームページ >データベース >mysql チュートリアル >私の PHP コードが LIMIT 句を含む MySQL クエリから 1 行しか返さないのはなぜですか?

私の PHP コードが LIMIT 句を含む MySQL クエリから 1 行しか返さないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-06 11:37:121017ブラウズ

Why Does My PHP Code Only Return One Row from a MySQL Query with a LIMIT Clause?

PHP を使用した MySQL での単一行の戻り値の解決

PHP の mysql_query() および mysql_fetch_assoc を使用して MySQL データベースから複数の行を取得しようとする場合() 関数を使用すると、単一行のみが表示されるという問題が発生する可能性があります。

問題:


次の PHP コードを考えてみましょう:

$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5");
$query2 = mysql_fetch_assoc($query);
print_r($query2);

このコードは、タグ検索に基づいて fastsearch テーブルからデータを取得します。ただし、LIMIT 句で指定された 5 行すべてを返すのではなく、最初の行のみを連想配列として返します。

解決策:

この問題を修正するには、次のようにします。コードは次のように変更する必要があります:

$query = mysql_query("SELECT `title`,
                             `url_title`
                        FROM `fastsearch`
                       WHERE `tags`
                            LIKE '%$q%'
                       LIMIT 5");

while ($row = mysql_fetch_assoc($query)) {
    print_r($row);
}
  • 修正済みスペル: 変数名 $query のスペルが正しいです。
  • 行反復: mysql_fetch_assoc() は一度に 1 行を返します。これを while() ループで使用すると、各反復で現在の行が $row 変数に割り当てられます。これにより、LIMIT 制約内のすべての行の取得と表示が可能になります。

以上が私の PHP コードが LIMIT 句を含む MySQL クエリから 1 行しか返さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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