【问题标题】:PHP/MySQL Orders project with items and accessories tables带有项目和附件表的 PHP/MySQL 订单项目
【发布时间】:2011-12-22 20:55:32
【问题描述】:

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

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

  • 产品
    • 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,名称:音箱架
  • 链接表
    • 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]

这可以通过从数据库中查找来完成吗?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您可以对 Link_table 和 Accessories 进行左连接并按 product_id 排序。

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

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

    【讨论】:

    • 好的,谢谢克里斯蒂安。现在会看看它,看看我是否可以让它工作。在 PHP 中调用时这个方法可以工作吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 2016-02-19
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 2016-07-03
    • 2016-05-11
    相关资源
    最近更新 更多