In PHP ist die Handhabung von Datenbankabfragen eine sehr häufige Aufgabe bei der täglichen Entwicklung. Wenn wir Daten aus mehreren Tabellen abrufen müssen, verwenden wir normalerweise eine Abfrage mit mehreren Tisch-Join (Join). Nach der Ausführung der Abfrage wird die Ermittlung der Abfrageergebnisse zum Schlüssel. In diesem Artikel wird vorgestellt, wie die Methode Fetch_all () verwendet wird, um die Ergebnisse der Multi-Table-Join-Abfrage zu erhalten und sie in Verbindung mit dem Beispielcode zu erklären.
Multi-Table-Join-Abfrage kann Daten in mehreren Tabellen korrelieren und Ergebnisse basierend auf bestimmten Bedingungen zurückgeben. Zum Beispiel gibt es zwei Tabellenbenutzer und Bestellungen . Wir möchten alle Benutzer und ihre entsprechenden Auftragsinformationen abfragen und können Join verwenden.
SELECT users.id, users.name, orders.order_id, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;
PHP bietet verschiedene Möglichkeiten, die MySQL -Datenbank zu betreiben. Hier verwenden wir die MySQLI -Erweiterung und verwenden die Methode Fetch_all (), um alle Ergebnisse zu erhalten.
<?php
$mysqli = new mysqli("m66.net", "username", "password", "database");
if ($mysqli->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $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("Abfrage fehlgeschlagen: " . $mysqli->error);
}
?>
Fetch_all () erhält alle Zeilen des Ergebniss gleichzeitig und gibt ein zweidimensionales Array zurück. Sein Standard -Rückgabetyp ist mySQLI_NUM , dh Indexarrays. Wir können auch MySQLi_assoc verwenden, um das assoziative Array zu erhalten.
<?php
$data = $result->fetch_all(MYSQLI_ASSOC);
foreach ($data as $row) {
echo "BenutzerID: " . $row['id'] . ",Name: " . $row['name'] . ",BefehlID: " . $row['order_id'] . ",Menge: " . $row['amount'] . "<br>";
}
?>
<?php
$mysqli->close();
?>
<?php
$mysqli = new mysqli("m66.net", "username", "password", "database");
if ($mysqli->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $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("Abfrage fehlgeschlagen: " . $mysqli->error);
}
$data = $result->fetch_all(MYSQLI_ASSOC);
foreach ($data as $row) {
echo "BenutzerID: " . $row['id'] . ",Name: " . $row['name'] . ",BefehlID: " . $row['order_id'] . ",Menge: " . $row['amount'] . "<br>";
}
$mysqli->close();
?>
Multi-Table-Join-Abfrage ist ein effektiver Weg, um zugehörige Daten zu erhalten.
Verwenden Sie MySQLIs Query (), um die Abfrage auszuführen, und verwenden Sie Fetch_all () , um alle Ergebnisse gleichzeitig zu erhalten und die Datenverarbeitung zu vereinfachen.
Durch Einstellen des Parameters von fetch_all () auf mySQLi_assoc können Sie über den Feldnamen problemlos Daten zugreifen.
Ich hoffe, dieser Artikel kann Ihnen helfen , fetch_all () besser zu verstehen und zu verwenden, um die Ergebnisse von Multi-Table-Join-Abfrage zu erhalten.