Dans PHP, la gestion des requêtes de base de données est une tâche très courante dans le développement quotidien. Lorsque nous avons besoin d'obtenir des données à partir de plusieurs tables, nous utilisons généralement une requête de jointure (jointure) multi-table. Après avoir exécuté la requête, comment obtenir facilement les résultats de la requête devient la clé. Cet article présentera comment utiliser la méthode fetch_all () pour obtenir les résultats de la requête de jointure multi-table et l'expliquez en conjonction avec l'exemple de code.
La requête de jointure multi-table peut corréler les données dans plusieurs tables et les résultats de retour en fonction de conditions spécifiques. Par exemple, il y a deux utilisateurs et commandes de table. Nous voulons interroger tous les utilisateurs et leurs informations de commande correspondantes, et nous pouvons utiliser Join .
SELECT users.id, users.name, orders.order_id, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;
PHP fournit différentes façons de faire fonctionner la base de données MySQL. Ici, nous utilisons l'extension mysqli et utilisons la méthode fetch_all () pour obtenir tous les résultats.
<?php
$mysqli = new mysqli("m66.net", "username", "password", "database");
if ($mysqli->connect_error) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
?>
<?php
$sql = "SELECT users.id, users.name, orders.order_id, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id";
$result = $mysqli->query($sql);
if (!$result) {
die("La requête a échoué: " . $mysqli->error);
}
?>
fetch_all () obtiendra toutes les lignes de l'ensemble des résultats en même temps et renverra un tableau bidimensionnel. Son type de retour par défaut est mysqli_num , c'est-à-dire les tableaux d'index. Nous pouvons également utiliser MySQLI_ASSOC pour obtenir le tableau associatif.
<?php
$data = $result->fetch_all(MYSQLI_ASSOC);
foreach ($data as $row) {
echo "utilisateurID: " . $row['id'] . ",Nom: " . $row['name'] . ",CommandeID: " . $row['order_id'] . ",Montant: " . $row['amount'] . "<br>";
}
?>
<?php
$mysqli->close();
?>
<?php
$mysqli = new mysqli("m66.net", "username", "password", "database");
if ($mysqli->connect_error) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
$sql = "SELECT users.id, users.name, orders.order_id, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id";
$result = $mysqli->query($sql);
if (!$result) {
die("La requête a échoué: " . $mysqli->error);
}
$data = $result->fetch_all(MYSQLI_ASSOC);
foreach ($data as $row) {
echo "utilisateurID: " . $row['id'] . ",Nom: " . $row['name'] . ",CommandeID: " . $row['order_id'] . ",Montant: " . $row['amount'] . "<br>";
}
$mysqli->close();
?>
La requête de jointure à plusieurs tableaux est un moyen efficace d'obtenir des données associées.
Utilisez MySQLI 's Query () pour exécuter la requête et utilisez fetch_all () pour obtenir tous les résultats à la fois, en simplifiant le traitement des données.
En définissant le paramètre de fetch_all () sur mysqli_assoc , vous pouvez facilement accéder aux données via le nom du champ.
J'espère que cet article peut vous aider à mieux comprendre et utiliser fetch_all () pour obtenir les résultats de la requête de jointure à plusieurs tableaux.