2011-12-21 96 views
1

编辑,请看最后一段。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,数量:2
    • ID:2,ORDER_ID:1,PRODUCT_ID:2,数量:1
  • 配件
    • ID:1,名称:电缆
    • ID:2,名称:麦克风支架
    • 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

目前,我使用P HP 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] 

结果可以这样做从数据库中的一个查询?

回答

0

您可以在Link_table和Accessories上执行左连接,然后按照product_id进行排序。

在您的while循环中,只需跟踪product_id在回显产品名称时是否更改。顺便说一句:你不需要Link_table的id字段,只需将product_id和acc_id作为主键即可。

+0

好的,谢谢Christian。现在看看它,看看我能否得到它的工作。在PHP中调用时可以使用这种方法吗? – Phil 2011-12-22 09:12:45