【发布时间】:2012-05-17 07:00:06
【问题描述】:
我有一个 MySQL 表,其中包含客户可以订购的所有可能产品的列表。该表的(非常)简化版本如下所示:
ID | productid | price | age_min | age_max | type
=======================================================================
1 | baseball_1 | 12.34 | 18 | 21 | 1
2 | baseball_2 | 15.99 | 22 | 30 | 1
3 | baseball_3 | 18.99 | 18 | 99 | 1
4 | golf_1 | 4.99 | 18 | 24 | 2
5 | golf_2 | 5.99 | 25 | 44 | 2
6 | tennis_1 | 9.99 | 18 | 50 | 3
7 | tennis_2 | 14.99 | 51 | 99 | 3
在这家商店,所有产品都有年龄限制,这意味着客户只有在他/她的年龄符合该范围的情况下才能选择要购买的商品。即使每个产品“类型”存在多个选项,定制也只能选择一种“类型”。在上面的示例表中,24 岁的客户只能选择:
棒球_2、棒球_3 高尔夫_1 和网球_1
我正在尝试按已知产品类型组织潜在客户的选项。因此,就我而言,商店可能会向客户展示:
棒球选项
- baseball_2 - 15.99 美元
- baseball_3 - 18.99 美元
高尔夫选项
- golf_1 - 4.99 美元
网球选项
- tennis_1 - 9.99 美元
我想使用 age 变量对数据库进行一次(如果可能的话)MySQL 调用,并返回所有可能的产品,然后如上所述相应地显示这些产品。 SQL 语句很简单,我已经完成了这项工作,但我不确定如何循环或构建一个可以列出成员可用选项的适当数组。
可能会建议,但这比显示的要详细得多,并且由于与该问题无关的其他几个因素,因此不能选择使用任何类型的第三方软件或购物车。看来这是如何处理多维数组的问题。有没有人遇到过类似的问题?
更新
虽然 Travesty 和 tdammer 下面提供的解决方案在某些情况下是有效的,但我希望能够对我的数据做更多的事情,然后将其从我的数据库中显示出来。页面的布局和设计不应取决于它在数据库中的存储方式/时间/等。有时我想先显示一组“类型”的最高价格,而先显示另一组“类型”的最低价格。
通过使用 fetchAll 语句,我能够从查询中收集我需要的所有必要数据,但我真的不确定如何使用它。比如我的数组目前是:
Array (
[0] => Array ( [productid] => 394, [price] => 6.20, [type] => 16 ),
[1] => Array ( [productid] => 395, [price] => 12.40, [type] => 16 ),
[2] => Array ( [productid] => 396, [price] => 18.60, [type] => 16 ),
[3] => Array ( [productid] => 397, [price] => 24.80, [type] => 16 ),
[4] => Array ( [productid] => 398, [price] => 31.00, [type] => 16 ),
[5] => Array ( [productid] => 449, [price] => 4.20, [type] => 17 ),
[6] => Array ( [productid] => 450, [price] => 8.40, [type] => 17 ),
[7] => Array ( [productid] => 451, [price] => 12.60, [type] => 17 ),
[8] => Array ( [productid] => 452, [price] => 16.80, [type] => 17 ),
[9] => Array ( [productid] => 453, [price] => 21.00, [type] => 17 )
)
有没有一种好方法来构建我自己的数组,我以后基本上可以说“向我显示所有类型为 17 的商品的 productid 和 price”?
【问题讨论】:
-
您确定多维数组真的是您想要的吗?我已经多次看到类似的问题,今天早上刚刚回答了另一个:stackoverflow.com/q/10501112/259457。这就是你遇到的问题吗?
-
@Travesty3 - 我不是来自两个表作为你的原始海报并且仍然有些不同,尽管我相信你更改标题的方式非常有趣,也许是我想要达到的。我会玩一会儿。
标签: php mysql arrays multidimensional-array pdo