Maison  >  Article  >  développement back-end  >  Pourquoi ma requête MySQL ne renvoie-t-elle qu'une seule ligne alors que j'en attends plusieurs ?

Pourquoi ma requête MySQL ne renvoie-t-elle qu'une seule ligne alors que j'en attends plusieurs ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 17:27:29398parcourir

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

Correction des lignes MySQL mal affichées

Face à un problème où MySQL ne renvoie qu'une seule ligne alors que le résultat attendu devrait être multiple ? Explorons ce code 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>

Ce code est destiné à récupérer les cinq premières lignes correspondantes de la table fastsearch en fonction d'une requête de recherche. Cependant, le problème survient en raison d'une utilisation incorrecte de mysql_fetch_assoc.

Utiliser une boucle While pour parcourir les lignes

Pour résoudre ce problème, nous devons utiliser une boucle while pour parcourir toutes les lignes correspondantes et les afficher une par une. Voici le code corrigé :

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

Dans ce code mis à jour :

  1. La variable $query est correctement orthographiée.
  2. Une boucle while est utilisée pour parcourir l'ensemble de résultats.
  3. $row se voit attribuer la ligne actuelle à l'aide de mysql_fetch_assoc à l'intérieur de la boucle.
  4. print_r($row) affiche la ligne actuelle à chaque fois dans la boucle.

Remarques supplémentaires :

  • Assurez-vous que l'extension MySQL est installée et activée dans votre configuration PHP.
  • Vérifiez que la variable $q contient le bon requête de recherche.
  • Les lignes sont renvoyées dans un tableau associatif, où les noms de champs sont les clés.
  • Le code corrigé affichera toutes les lignes correspondantes jusqu'à la limite spécifiée (5 dans ce cas) .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn