数据库选择php

时间:2017-02-20 16:20:34

标签: php sql-server

我有一个包含10个项目的数据库,所有这些项目都有金额(item_one,item_one_amount)。这就是表中的20行。

我想要做的是在php中绑定这两件事,项目ID与金额绑定。

不确定如何解决我的问题。 双重预告是一个好主意吗?

我的数据库结构也可能是个问题?我的想法是:我有10个不同的捆绑。它们中的每一个都具有不同的项目,其中具有不同数量的所述项目。项id_s从另一个表中获取,该表包含有关项

的所有信息
My db:
    FirstItem, SecondItem, ThirdItem, FourthItem, FifthItem,                  
    SixthItem, SeventhItem, EighthItem, NinthItem, TenthItem, 
    FirstItemID, SecondItemID, ThirdItemID, FourthItemID, FifthItemID, 
    SixthItemID, SeventhItemID, EighthItemID, NinthItemID, TenthItemID, 
    first_item_amount, second_item_amount, third_item_amount, fourth_item_amount, 
    fifth_item_amount, sixth_item_amount, seventh_item_amount, eighth_item_amount, ninth_item_amount, tenth_item_amount
FROM Bundles

我的php尝试:

foreach ($all_ids as &$item_id) {
    if ($item_id == 0){
        break;
    }

foreach ($all_item_amounts as &$item_amount) {
    //do something
    if ($item_amount == 0) {
        break;
    } 
}

 }

出于某种原因,我陷入了困境。

1 个答案:

答案 0 :(得分:0)

使用包含所有列前缀的数组:

values=[1,2,3]

然后遍历查询结果的所有行,并在这些前缀上使用嵌套循环来获取正确分组中的所有列。

$nths = array('First', 'Second', 'Third', 'Fourth', 'Fifth', 'Sixth', 'Seventh', 'Eighth', 'Ninth', 'Tenth');

但是,我建议您将设计标准化。而不是每行30列,将每个组放在一个单独的行中,$results = array(); foreach ($all_rows as $row) { foreach ($nths as $prefix) { $results[] = array('item' => $row[$prefix . 'Item'], 'itemid' => $row[$prefix . 'ItemID'], 'amount' => $row[strtolower($prefix) . '_item_amount']); } } 对于同一个包的所有行都是公共的。

bundleId

这种创建语法可能不适合SQL-Server,我的经验是使用MySQL。