ここにいる他の人の助けを借りて、1つの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 にその月のすべてのイベントを入力するように機能します。その後、イベントをクリックすると、関連する情報が表示されます。ここで少し行き詰まっています。
私が持っている配列は次のようなものです.ゲスト配列は私が試しているものです:
$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 を使用してメニュー B に ($events[$x] as $event) を入力します。各イベントの画面には、次のようなエントリが表示されます。これが私がやりたいことです (明らかに、これが機能しないことはわかっていますが、説明のために役立つはずです)。
echo 'ゲスト数: ' . print_r($ゲスト[$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
";