我有一个 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
我正在尝试按已知产品类型组织潜在客户的选项。因此,就我而言,商店可能会向客户展示:
棒球选项
- 棒球_2 - 15.99 美元
- 棒球 3 - 18.99 美元
高尔夫选项
- Golf_1 - 4.99 美元
网球选项
- 网球_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 的项目的产品 ID 和价格”?