代码之家  ›  专栏  ›  技术社区  ›  Paddy Hallihan

php&sql-从数据库中全选,但按分组内容循环结果

  •  0
  • Paddy Hallihan  · 技术社区  · 6 年前

    我正在创建一个电子商务网站,在那里我们有以不同货币向我们提供价格的供应商。我们可能有一个供应商给我们的价格是-英镑,另一个供应商给我们的价格是-欧元,其他供应商给我们的价格是两种货币。如果他们提供两种货币的价格,那么我们的英镑客户得到英镑价格,我们的欧元客户得到欧元价格。如果价格只以一种货币给我们,那么我们自己交换。

    因此,我的所有定价数据库与此表类似,如果供应商以两种货币向我们提供价格,则同一产品有两个记录:

    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>

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

    我知道这是一个很难解释的问题,所以我希望这是可以理解的。如有任何帮助或帮助,我们将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Puschie    6 年前

    Example

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