Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gibt meine MySQL-Abfrage nur eine Zeile zurück, wenn ich mehrere erwarte?

Warum gibt meine MySQL-Abfrage nur eine Zeile zurück, wenn ich mehrere erwarte?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 17:27:29401Durchsuche

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

Falsch angezeigte MySQL-Zeilen korrigieren

Stehen Sie vor einem Problem, bei dem MySQL nur eine Zeile zurückgibt, wenn das erwartete Ergebnis mehrere sein sollte? Sehen wir uns diesen PHP-Code an:

<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>

Dieser Code soll die ersten fünf übereinstimmenden Zeilen aus der Fastsearch-Tabelle basierend auf einer Suchabfrage abrufen. Das Problem entsteht jedoch aufgrund einer falschen Verwendung von mysql_fetch_assoc.

Verwenden einer While-Schleife zum Durchlaufen von Zeilen

Um dieses Problem zu beheben, müssen wir eine While-Schleife verwenden um alle übereinstimmenden Zeilen zu durchlaufen und sie einzeln anzuzeigen. Hier ist der korrigierte Code:

<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>

In diesem aktualisierten Code:

  1. Die Variable $query ist korrekt geschrieben.
  2. Eine While-Schleife wird zum Durchlaufen verwendet die Ergebnismenge.
  3. $row wird die aktuelle Zeile mithilfe von mysql_fetch_assoc innerhalb der Schleife zugewiesen.
  4. print_r($row) zeigt die aktuelle Zeile jedes Mal durch die Schleife an.

Zusätzliche Hinweise:

  • Stellen Sie sicher, dass die MySQL-Erweiterung in Ihrer PHP-Konfiguration installiert und aktiviert ist.
  • Stellen Sie sicher, dass die Variable $q das Richtige enthält Suchabfrage.
  • Zeilen werden in einem assoziativen Array zurückgegeben, wobei die Feldnamen die Schlüssel sind.
  • Der korrigierte Code zeigt alle übereinstimmenden Zeilen bis zum angegebenen Limit an (in diesem Fall 5). .

Das obige ist der detaillierte Inhalt vonWarum gibt meine MySQL-Abfrage nur eine Zeile zurück, wenn ich mehrere erwarte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn