Dans le développement Web, la requête de table conjointe est une opération courante. En langage PHP, nous pouvons implémenter des requêtes en utilisant des jointures entre plusieurs tables. Pour des opérations de requête plus complexes, lorsque les données à obtenir sont relativement complexes, nous pouvons généralement utiliser un tableau tridimensionnel pour stocker les données. Cet article explique comment utiliser PHP pour effectuer des requêtes de table conjointes et comment obtenir un tableau tridimensionnel.
1. Qu'est-ce qu'une requête de table commune ?
La requête de table conjointe fait référence à l'opération consistant à utiliser plusieurs tables en même temps dans la requête. Lorsqu'une table ne dispose pas de certaines informations de champ ou que certaines informations doivent être obtenues à partir de plusieurs tables, nous devons utiliser une requête de table commune.
Lors de l'exécution d'une requête de table commune, nous devons utiliser le mot-clé JOIN pour joindre plusieurs tables ensemble. Les mots-clés de connexion incluent LEFT JOIN, RIGHT JOIN, INNER JOIN, FULL OUTER JOIN, etc. Choisissez en fonction de vos besoins, généralement l'utilisation d'INNER JOIN peut répondre à vos besoins.
2. Comment utiliser PHP pour effectuer une requête de table commune ?
En PHP, nous pouvons utiliser des PDO (PHP Data Objects) pour les opérations de base de données. Ce qui suit est un exemple simple dans lequel nous utiliserons le mot-clé INNER JOIN pour effectuer une requête conjointe sur deux tables.
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO(" mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT Orders.OrderID, Customers .CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID";
foreach ($conn->query($sql) as $row) {
print $row['OrderID'] . "\t"; print $row['CustomerName'] . "\t"; print $row['OrderDate'] . "\n";
}
} catch( PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
?>
Dans le code ci-dessus, nous nous connectons d'abord à la base de données. Ensuite, nous avons utilisé le mot-clé INNER JOIN pour effectuer une requête conjointe sur la table Commandes et la table Clients, et avons utilisé une boucle foreach pour parcourir les résultats de la requête.
Comme vous pouvez le voir, nous avons utilisé l'instruction SELECT pour spécifier les champs à interroger, et avons également utilisé le mot-clé INNER JOIN pour connecter les deux tables. Dans la boucle suivante, nous utilisons print pour afficher les résultats de la requête.
3. Comment obtenir un tableau en 3 dimensions ?
Si les données que nous devons obtenir sont relativement complexes, une fois la requête de table commune terminée, nous devons convertir les résultats de la requête en un tableau tridimensionnel pour le stockage. Vous trouverez ci-dessous un exemple de code que nous avons modifié sur cette base.
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO(" mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT Orders.OrderID, Customers .CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID";
$result = $conn->query($sql)->fetchAll(PDO::FETCH_GROUP|PDO: :FETCH_ASSOC);
$output = array();
foreach ($result as $key=>$val) {
$output[] = array("OrderID"=>$key, "OrderDetail"=>$val);
}
print_r($output);
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
?>
Dans le code ci-dessus, nous utilisons les deux constantes PDO::FETCH_GROUP et PDO::FETCH_ASSOC Obtenez le tableau associatif groupé. Ensuite, nous convertissons le résultat en un tableau tridimensionnel via une boucle et utilisons enfin la fonction print_r pour la sortie du tableau.
4. Résumé
Dans le développement Web, la requête de table conjointe est une opération très courante. En utilisant le mot-clé INNER JOIN, nous pouvons facilement joindre plusieurs tables pour les requêtes. Lorsque les données sont complexes, nous pouvons utiliser un tableau tridimensionnel pour stocker les résultats de la requête en vue d'un traitement ultérieur. Lorsque vous utilisez PDO pour des opérations de base de données, vous devez faire attention à la sécurité et gérer les exceptions.
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!