【问题标题】:PHP & SQL - select all from a db but loop through results by grouped contentPHP & SQL - 从数据库中选择所有但按分组内容循环遍历结果
【发布时间】:2018-07-31 10:57:04
【问题描述】:

我正在创建一个电子商务网站,我们的供应商可以为我们提供不同货币的价格。我们可能有一个供应商以£-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>

我正在遍历这个表,然后生成一个表格来更新它。但是,我目前的做法是为数据库中的每一行创建一行,我希望能够以一种不会仅仅因为它为同一产品创建新行的方式循环遍历它是另一种货币。相反,我想循环遍历它,以便它为每个产品创建一条线,但如果该产品有两种货币的成本,那么它应该只在一条线上创建两个输入。

【问题讨论】:

    标签: php sql


    【解决方案1】:

    所以我会为每个产品创建行并创建一个包含货币值的下拉列表(可以添加动态)。这不是最简单的方法,但可以以消费者的方式管理数据

    结构设置:Example

    旧答案

    您应该将表拆分为产品表和价格表。因此,您可以将所有价格加入到产品中,而无需处理关联。

    Prices
    -
    PriceID PK int
    Price float
    Currency money
    ProductID int FK >- Product.ProductID
    
    Product
    ------------
    ProductID PK int
    Name varchar(200) UNIQUE
    

    编辑:如评论中所述,表格被拆分

    【讨论】:

    • 感谢您的回答。但是,我的桌子已经分开了。此示例中的列实际上具有来自其他表的 ID,与此示例相比,表中还有更多内容和其他内容,因此这对我来说实际上不起作用。
    • 哦,好吧 - 所以你正在寻找一个 gui 处理机制。我会在一秒钟内更新我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    相关资源
    最近更新 更多