php - PHP & SQL - 从数据库中选择所有但按分组内容循环遍历结果
问题描述
我正在创建一个电子商务网站,我们的供应商以不同的货币为我们提供价格。我们可能有一个供应商以£-GBP 为我们提供价格,另一个以€-EUR 为我们提供价格,而其他供应商以两种货币为我们提供价格。如果他们提供两种货币的价格,那么我们的 GBP 客户将获得 GBP 价格,而我们的 EUR 客户将获得 EUR 价格。如果价格只以一种货币提供给我们,那么我们自己进行兑换。
因此,我的所有定价数据库看起来都类似于此表,如果供应商以两种货币向我们提供价格,则同一产品有两条记录:
thead{
background-color:#bbb;
}
td{
padding:10px;
}
<table border='1'>
<thead>
<tr>
<td>Supplier Type</td>
<td>Currency</td>
<td>Product</td>
<td>Attribute</td>
<td>Cost</td>
</tr>
</thead>
<tr>
<td>Supplier-£</td>
<td>£</td>
<td>Hat</td>
<td>Red</td>
<td>10</td>
</tr>
<tr>
<td>Supplier-£</td>
<td>£</td>
<td>Hat</td>
<td>Blue</td>
<td>9</td>
</tr>
<tr>
<td>Supplier-€</td>
<td>€</td>
<td>Shoes</td>
<td>Large</td>
<td>50</td>
</tr>
<tr>
<td>Supplier-€</td>
<td>€</td>
<td>Shoes</td>
<td>Small</td>
<td>45</td>
</tr>
<tr>
<td>Supplier-Both</td>
<td>£</td>
<td>Suit</td>
<td>Large</td>
<td>150</td>
</tr>
<tr>
<td>Supplier-Both</td>
<td>€</td>
<td>Suit</td>
<td>Large</td>
<td>160</td>
</tr>
<tr>
<td>Supplier-Both</td>
<td>£</td>
<td>Suit</td>
<td>Small</td>
<td>100</td>
</tr>
<tr>
<td>Supplier-Both</td>
<td>€</td>
<td>Suit</td>
<td>Small</td>
<td>110</td>
</tr>
</table>
我正在遍历这个表,然后生成一个表格来更新它。但是,我目前的做法是为数据库中的每一行创建一行,我希望能够以一种不会仅仅因为它为同一产品创建新行的方式循环遍历它是另一种货币。相反,我想循环遍历它,以便为每个产品创建一条线,但如果该产品具有两种货币的成本,那么它应该只在一条线上创建两个输入。
解决方案
所以我会为每个产品创建行并创建一个包含货币值的下拉列表(可以添加动态)。这不是最简单的方法,但可以以消费者的方式管理数据
结构设置:示例
旧答案:
您应该将表拆分为产品表和价格表。因此,您可以将所有价格加入到产品中,而无需处理关联。
Prices
-
PriceID PK int
Price float
Currency money
ProductID int FK >- Product.ProductID
Product
------------
ProductID PK int
Name varchar(200) UNIQUE
编辑:如评论中所述,表格被拆分
推荐阅读
- ios - 用图像反应原生 iOS 推送通知
- angular - ngrx 效果中的 switchMap 取消选项 http 请求
- ruby - Redcarpet gem 的新行错误
- node.js - Node.js 应用程序监控服务 - OpBeat 替代方案
- excel - 使用python从非结构化Excel文件中解析数据
- php - 动态地将数组推入多维数组
- python - 如何在 PIL 中围绕中心剪切图像?
- php - Woocommerce单品页面背景如何显示产品图库图片
- python-3.x - 如何通过将另一个矩阵的第一列用作新矩阵的第一行来从另一个矩阵创建一个新矩阵?
- azure - 为具有身份验证的应用服务部署 ARM 模板时自动创建应用服务标识