gpt4 book ai didi

php - 使用 PHP 从多个 MySQL 表进行查询

转载 作者:行者123 更新时间:2023-11-29 22:27:30 25 4
gpt4 key购买 nike

我有以下函数,可以从发票表中提取发票数据,但是如何从客户表中获取与发票号匹配的数据:

所以我想需要从客户表中获取*,其中发票=发票

PHP

// the query
$query = "SELECT * FROM invoices ORDER BY invoice ASC";

// mysqli select query
$results = $mysqli->query($query);

// mysqli select query
if($results) {

print '<table class="table table-striped table-bordered" id="data-table" cellspacing="0"><thead><tr>

<th><h4>Invoice</h4></th>
<th><h4>Customer</h4></th>
<th><h4>Issue Date</h4></th>
<th><h4>Due Date</h4></th>
<th><h4>Status</h4></th>
<th><h4>Action</h4></th>

</tr></thead><tbody>';

while($row = $results->fetch_assoc()) {

print '
<tr>
<td>'.$row["invoice"].'</td>
<td>'.$row["customer_name"].'</td>
<td>'.$row["invoice_date"].'</td>
<td>'.$row["invoice_due_date"].'</td>
<td>test</td>
<td><a href="invoice-edit.php?id='.$row["invoice"].'" class="btn btn-primary">Edit</a> <a data-invoice-id="'.$row['invoice_id'].'" class="btn btn-danger delete-product">Delete</a></td>
</tr>
';

}

print '</tr></tbody></table>';

} else {

echo "<p>There are no invoices to display.</p>";

}

最佳答案

首先,将 key 包含在 select 中通常是一个更好的主意(而且也更容易排除故障),而不是 *。但是,假设这些是您的字段,您可以使用 JOIN 连接这些字段,如下所示:

SELECT * 
FROM invoices i
JOIN customer c
ON c.invoice = i.invoice
ORDER BY i.invoice

假设您在每个表上都有一个公共(public)键,正如您所建议的那样,它是发票(这是使用数据库而不是平面文件的巨大优势),您可以将它们连接在一起(i c 只是快捷方式,可以更轻松地阅读查询)。

您还可以在 ON 行后使用 WHERE 来修改此内容,以缩小结果范围,例如类似这样的内容(假设您正在查找编号为12345

SELECT * 
FROM invoices i
JOIN customer c
ON c.invoice = i.invoice
WHERE i.invoice = 12345
ORDER BY i.invoice

SQL 非常强大。如果您想阅读更多内容,此网站上有一些很棒的教程:http://www.w3schools.com/sql/

如果您想在查询中调用它(使用第一个示例),您可以按照以前的方式进行操作,如下所示:

 while($row = $results->fetch_assoc()) {
echo $row["invoice"];

}

编辑:将来最好在选择中声明您的 key 。假设 customer_name 位于客户表中,您可以在选择中将其称为 c.customer_name。然而,以下是如何使用通配符从两个表中获取所有内容。将您的查询更改为:

SELECT i.*, c.*
FROM invoices i
JOIN customer c
ON c.invoice = i.invoice
ORDER BY i.invoice

关于php - 使用 PHP 从多个 MySQL 表进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30144269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com