さまざまな場所でさまざまなレベルの試験の需要を示そうとしています。
ページ全体に一連の 4 つの 2 列テーブルを出力するコードがあります。
各表は、最初の列に合計登録数を示し、2 番目の列の括弧内に支払い総額を示しています。
レベルごとに表があります。各テーブルには、そのレベルの各センターの行があります。
例: 1 番目の左端の列:
A1
______________
______________
Arlington > A1
______________
26 (17)
--------------
El Paso > A1
______________
8 (8)
--------------
White Ridge > A1
________________
0 (0)
----------------
Jonestown > A1
_______________
10 (9)
----------------
Hochberg > A1
_____________
5 (0)
-------------
各試験レベルには異なるセンターが必要なので、ネストされた配列を使用しました。レベルごとにさまざまな長さのテーブルを表示できますが、SQL クエリから値を取得できません。すべてに対して 0 です。
また、テーブルの各レベルの個々のセンターを表示できません。つまり、ライン
<td class="width8">' . $centre . ' > ' . $level . '</td>
動作していません。「Array > A1」、「Array > A2」などを表示するだけです。
何か案は?
// create array
$levels = array(
"A1" => array(
'Arlington',
'El Paso',
'White Ridge',
'Jonestown',
'Hochberg'
),
"A2" => array(
'Arlington',
'El Paso',
'Hochberg'
),
"B1" => array(
'El Paso',
'White Ridge',
'Jonestown',
'Hochberg'
),
"B2" => array(
'Arlington',
'El Paso',
'White Ridge'
)
);
// Loop through centres and levels
foreach ($levels as $level => $centres) {
echo '<div id="' . $level . '_column">
<h2 class="'.$level.'">'.$level.'</h2>';
foreach ($centres as $centre) {
// Prepare
$stmt1 = $db->prepare("SELECT COUNT(Centre)
FROM exam
WHERE exam.Centre=:centre
AND exam.Level=:level");
$stmt2 = $db->prepare("SELECT COUNT(Centre)
FROM exam
JOIN personal
ON exam.P_ID=personal.P_ID
WHERE personal.Paid='1'
AND exam.Centre=:centre
AND exam.Level=:level");
// Bind
$stmt1->bindParam(':centre', $centre, PDO::PARAM_STR);
$stmt1->bindParam(':level', $level, PDO::PARAM_STR);
$stmt2->bindParam(':centre', $centre, PDO::PARAM_STR);
$stmt2->bindParam(':level', $level, PDO::PARAM_STR);
// Execute
$stmt1->execute();
$stmt2->execute();
// Fetch
$row = $stmt1->fetch(PDO::FETCH_ASSOC);
$row2 = $stmt2->fetch(PDO::FETCH_ASSOC);
echo '<table class="Font3White">
<tr class="Title">
<td class="width8">' . $centre . ' > ' . $level . '</td>
<tr>';
if ($row && $row2) {
foreach ($row as $key => $value) {
echo '<td>';
echo $value;
echo '</td>';
}
foreach ($row2 as $key2 => $value2) {
echo '<td> (';
echo $value2;
echo ')</td>';
}
echo '</tr>';
}
echo '</table>';
} echo '</div>';
}