在许多应用程序中,需要从多个数据库表中检索数据以获取所需的信息。在这种情况下,两张表的关联查询可以作为非常强大的工具来查询所需的数据。在本文中,我们将介绍如何使用 php 代码实现两张表关联查询显示。
首先,我们需要创建一对相关联的数据库表。我们将模拟一个简单的电子商务网站的场景。第一张表是 products 表,它包含所有可供销售的产品。第二张表是 orders 表,它包含已存在订单的详细信息。两张表之间的关联是 products.id 字段和 orders.product_id 字段之间的关联。
在 products 表中,我们需要添加以下几个字段:
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);在 orders 表中,我们需要添加以下几个字段:
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
product_id INT NOT NULL,
customer_name VARCHAR(255) NOT NULL,
quantity INT NOT NULL,
total_price DECIMAL(10, 2) NOT NULL,
order_date DATE NOT NULL,
FOREIGN KEY (product_id) REFERENCES products(id)
);现在,在我们的数据库中有两张相关联的表。接下来是如何使用 PHP 代码来查询这些数据并将它们显示在网页上的过程。
立即学习“PHP免费学习笔记(深入)”;
首先,我们需要连接到数据库。使用以下代码连接到您的数据库:
// 使用 mysqli 连接到数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}现在我们已经成功连接到数据库,接下来是关键部分:查询两张表并将它们结合在一起显示出来。使用以下代码来查询两张表并将它们结合在一起显示:
$sql = "SELECT products.name, products.price, orders.customer_name, orders.quantity, orders.total_price, orders.order_date
FROM products
INNER JOIN orders
ON products.id = orders.product_id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "产品名称: " . $row["name"] . "
";
echo "价格: " . $row["price"] . "
";
echo "客户姓名: " . $row["customer_name"] . "
";
echo "数量: " . $row["quantity"] . "
";
echo "总价: " . $row["total_price"] . "
";
echo "订单日期: " . $row["order_date"] . "
";
}
} else {
echo "没有数据!";
}在上面的代码中,我们使用了 SELECT 语句和 INNER JOIN 来结合两张表。使用这个查询,我们可以从 products 表和 orders 表中检索数据,并根据它们之间的关联将它们结合在一起。我们使用 mysqli_fetch_assoc() 函数来遍历从数据库中检索的数据,并将结果输出到网页上。
现在,我们已经成功地使用 PHP 代码实现了两张表的关联查询,并将结果显示在网页上。











