在其他人的帮助下,我在旅途中得到了一个嵌套循环,它从一个 sql 表中提取月份列表,然后,对于每个月份,它会遍历一个事件表并提取相应的事件。
表结构大致如下:
月表
ID | MonthShort | MonthLong
1 | 2012Oct | October 2012
2 | 2012Sep | September 2012
事件表
ID | MonthID | Event | Guests | Adults | Children
1 | 1 | Wedding | 200 | 150 | 50
2 | 1 | Bar Mitzvah | 100 | 50 | 50
3 | 1 | Funeral | 100 | 50 | 50
4 | 2 | Birthday | 50 | 30 | 20
5 | 2 | Birthday | 300 | 200 | 100
6 | 2 | Wedding | 200 | 180 | 20
我的循环工作,以便它用所有可用月份填充菜单 A,然后用该月的所有事件填充菜单 B。然后您可以单击该事件并显示相关信息 - 这是我有点卡住的地方。
我得到的数组类似于以下,来宾数组是我正在尝试的 atm:
$events = array();
$months = array();
$guests = array();
while ($row = mysql_fetch_array($result)) {
$months[$row["MonthID"]] = $row["MonthLong"];
$events[$row["MonthID"]][] = $row["Event"];
$guests[$row["MonthID"]][] = $row["Guests"];
}
我使用 foreach 用 ($events[$x] as $event) 填充菜单 B。每个事件的屏幕都会有一个类似于以下内容的条目,这就是我想要做的(显然我知道这不起作用,但它应该用于说明目的):
echo '来宾人数:' . print_r($guests[$x])
尽管客人和活动都在同一个柜台上,但我可以在相关位置打印数组条目。
October 2012
如果你点击“ ”然后选择“ ”,我想要什么Funeral
,屏幕会说:
宾客人数:100
每个事件实际上有几十个记录,但没有必要深入所有这些......
为漫无边际的道歉,如果这没有意义!我是 PHP 新手,我只真正坚持这一点。
SQL 查询基于以下内容:
$sql = "
SELECT
a.id, b.id AS monthId, a.event, b.monthshort, b.monthlong
FROM
events_table_name AS a
INNER JOIN
month_table_name AS b ON b.id = a.monthId
ORDER BY
b.id, a.id ASC
";