我有一个查询,它正在数据库中搜索订单。我的 SQL 查询返回以订单 ID 为键的订单信息(对于具有多个产品的订单,该 ID 重复)和附加到订单信息的订单信息,包括产品数量和变化。
该查询连接了几个表并输出如下
|--orderid--|--orderstatus--|--ordcustid--|--orderprodname--|--orderprodqty--|--orderqty--|
|---12635---|-----11--------|-----4192----|----Product1-----|--------1-------|-----2------|
|---12635---|-----11--------|-----4192----|----Product2-----|--------1-------|-----2------|
|---12636---|-----11--------|-----3531----|----Product3-----|--------1-------|-----1------|
正如你在上面看到的。客户 4192 下了 1 个包含 2 个产品的订单 (orderid 12635)。客户 3531 下了 1 个包含 1 个产品的订单(orderid 12636)。
我想捕获每个订单的信息并将其放在一起。因此,虽然订单 ID 相同,但我正在收集信息。
我当前的脚本看起来像这样,但它只适用于每一行。
$result = mysql_query("
SELECT *
FROM orders, orderproducts, productimage, customers
WHERE orders.orderid = orderproducts.orderorderid
AND orderproducts.orderprodid = productimage.imageprodid
AND orders.ordcustid = customers.customerid
AND ordstatus = '11'
ORDER BY orderid
");
while($row = mysql_fetch_array($result))
{
//do stuff
}
该脚本的目的是邮寄每个订单的信息。我当前的脚本正在做的是为每个产品邮寄客户(即客户 4192 将收到两封单独的电子邮件 - 1 封用于 Product1,1 封用于 Product2)。我想要做的是在同一封电子邮件中使用两种产品向客户 4192 发送电子邮件。
如何改进我的脚本,以便在 orderid 相同时,它将从 orderid 相同的所有行(例如 orderproductname、qty )获取信息,然后在 order id 更改时继续。