首頁  >  文章  >  後端開發  >  為什麼當我期望多行時,我的 MySQL 查詢只會傳回一行?

為什麼當我期望多行時,我的 MySQL 查詢只會傳回一行?

Susan Sarandon
Susan Sarandon原創
2024-11-02 17:27:29472瀏覽

Why Does My MySQL Query Only Return One Row When I Expect Multiple?

修正錯誤顯示的 MySQL 行

面對 MySQL 僅傳回一行的問題,而預期結果應該是多行?讓我們來探索這段 PHP 程式碼:

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

此程式碼旨在根據搜尋查詢從快速搜尋表中取得前五個符合行。然而,這個問題是由於 mysql_fetch_assoc 的錯誤使用而產生的。

使用 While 循環迭代行

要解決這個問題,我們需要使用 while 循環迭代所有匹配的行並一一顯示它們。這是修正後的程式碼:

<code class="php">$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5");
while ($row = mysql_fetch_assoc($query)) {
    print_r($row);
}</code>

在此更新的程式碼中:

  1. $query 變數拼字正確。
  2. 使用 while 迴圈進行迭代結果集。
  3. $row 在循環內使用 mysql_fetch_assoc 指派目前行。
  4. print_r($row) 每次通過循環都會顯示目前行。

附加說明:

  • 確保在 PHP 配置中安裝並啟用了 MySQL 擴充。
  • 驗證 $q 變數是否包含正確的內容搜尋查詢。
  • 行以關聯數組的形式傳回,其中欄位名稱是鍵。
  • 修正後的程式碼將顯示指定限制內的所有符合行(本例為 5 行) .

以上是為什麼當我期望多行時,我的 MySQL 查詢只會傳回一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn