PHP / MySQL Orders项目包含项目和附件表

时间:2011-12-21 20:32:36

标签: php mysql

已编辑,请参阅最后一段。

我正在构建一个包含以下表格和示例数据的订单系统:

  • 产品
    • id :1,姓名:发言人,价格:£12.00
    • id :2,名称:麦克风,价格:£4.00
  • 订单
    • id :1,日期:2011-01-01
  • Orders_items
    • id :1,Order_id:1,Product_id:1,Qty:2
    • id :2,Order_id:1,Product_id:2,Qty:1
  • 附件
    • id:1,名称:电缆
    • id:2,名称:Mic Stand
    • id:3,名称:扬声器支架
  • Link_table
    • id:1,Product_id:1,Acc_id:1,Qty_ship:2
    • id:2,Product_id:1,Acc_id:3,Qty_ship:1
    • id:3,Product_id:2,Acc_id:2,Qty_ship:1

目前我使用PHP while编写一个包含订单项的表格(没有附件)。

现在提出问题:我想使用PHP输出一个表来检索订单项以及该项目的附件。就像一个选择列表。

Order 1
Qty Name     Price   Accessories
1   Speaker  £12.00  2 x Cable
                     1 x Speaker stand

1   Mic      £ 4.00  1 x Mic stand

这可能吗?我能想到的唯一方法是在while语句中添加mysql_query,在写入订单项时查找附件?

我想我要问的是。

SELECT * FROM Order_items WHERE Order_id = 1

然后在每一行的末尾,我想包括附件的结果

SELECT Qty_ship, Acc_id FROM Link_table WHERE Product_id = [NUMBER]

可以从数据库中进行一次查找吗?

1 个答案:

答案 0 :(得分:0)

您可以在Link_table和附件上进行左连接,并按product_id排序。

在您的while循环中,您只需要在回显产品名称时跟踪product_id是否已更改。

顺便说一下:你不需要Link_table的id字段,只需将product_id和acc_id作为主键即可。