"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi ma requête MySQLi ne renvoie-t-elle qu'une seule ligne alors que j'en attends plusieurs ?

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

Publié le 2024-11-18
Parcourir:212

Why is My MySQLi Query Only Returning One Row When I Expect Multiple?

Identifier la cause première de la récupération d'une seule ligne par une requête MySQLi

Lorsque vous êtes confronté au problème où une requête MySQLi ne renvoie qu'une seule ligne alors qu'elle en attend plusieurs , il est essentiel d'examiner le code impliqué. Dans le cas fourni, la requête vise à récupérer les données des tables sb_buddies et sb_users.

Le code sélectionne les colonnes des deux tables et les joint en fonction du champ buddy_requester_id. Cependant, la ligne suivante tente de récupérer une seule ligne à l'aide de $request_list_result->fetch_array().

Solution : Utiliser fetch_all() pour récupérer plusieurs lignes

Pour récupérer plusieurs lignes, il est nécessaire d'employer la méthode fetch_all() :

$request_list_result = $mysqli->query("
SELECT buddy_requester_id, buddy_reciepient_id, user_id, user_fullname FROM sb_buddies
JOIN sb_users ON buddy_requester_id=user_id
WHERE buddy_status='0' AND buddy_reciepient_id='". get_uid() ."'");

$request_list_rows = $request_list_result->fetch_all();

echo $request_list_rows[0]['user_fullname'];

Explication de la différence

  • fetch_array() renvoie une seule ligne sous forme de tableau associatif, où la colonne les noms servent de clés.
  • fetch_all() renvoie toutes les lignes sous la forme d'un tableau de tableaux associatifs, chacun représentant un seul row.

En utilisant fetch_all(), le code peut désormais accéder aux données de toutes les lignes correspondantes, résolvant ainsi le problème de l'obtention d'une seule ligne.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3