数据库选择php
我有一个数据库,表中有10个项目,所有这些项目都有金额(项目1,项目1,金额)。表中有20行 我想做的是在php中绑定这两件事,项目id和金额 我不知道如何解决我的问题。 双人间是个好主意吗 我的数据库结构也可能是个问题?我的想法是:我有10个不同的包。每一个都有不同的物品,其中所述物品的数量不同。我从另一个表中获取的项目id,该表包含该项目的所有信息数据库选择php,php,sql-server,Php,Sql Server,我有一个数据库,表中有10个项目,所有这些项目都有金额(项目1,项目1,金额)。表中有20行 我想做的是在php中绑定这两件事,项目id和金额 我不知道如何解决我的问题。 双人间是个好主意吗 我的数据库结构也可能是个问题?我的想法是:我有10个不同的包。每一个都有不同的物品,其中所述物品的数量不同。我从另一个表中获取的项目id,该表包含该项目的所有信息 My db: FirstItem, SecondItem, ThirdItem, FourthItem, FifthItem,
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;
}
}
}
由于某些原因,我陷入了循环。使用一个包含所有列前缀的数组:
$nths = array('First', 'Second', 'Third', 'Fourth', 'Fifth', 'Sixth', 'Seventh', 'Eighth', 'Ninth', 'Tenth');
然后循环查询结果的所有行,并在这些前缀上使用嵌套循环以获得正确分组中的所有列
$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']);
}
}
但是,我建议您规范化您的设计。不是每行30列,而是将每个组放在一个单独的行中,使用一个bundleId
,这是同一个bundle的所有行所共有的
CREATE TABLE Bundles (
BundleID INT,
ItemID INT, -- Foreign key to Items table
Amount INT,
PRIMARY KEY (BundleID, ItemID)
);
这种创建语法可能不完全适合SQL Server,我的经验是使用MySQL。为什么是20行?应该是10行2列,对吗?你能显示表格内容吗?你说的“绑定这两个东西”是什么意思?我想你只需要旋转表格,看看这就是问题所在,我计划用数据填充表格:某个包包含10个不同数量的项目,不同的包可以有不同值的不同项目,因此,10行表示项目名称,10行表示金额。通过将这2行绑定在一起,我的意思是每个项目都应该将其值绑定到HIM。我不理解您的数据库返工想法,您可以将其扩展一点吗?我添加了一个建议的模式。但在这种情况下,金额是针对捆绑包的,而不是每个项目的。否?这正是我想要实现的,捆绑包中的10个项目中的每一个都有不同的金额。您的表有
第一个项目金额
,第二个项目金额
,等等。所以它是针对每个项目的。