Я использую ниже код (при условии, как решение предыдущего вопроса на Display mySQL records as HTML table columns), чтобы сгенерировать HTML-таблицу, как:Добавление строк в HTML-таблицу с динамическими столбцами
На основе этих столы:
неделя имена в таблице «недели» и каждую неделю запись также содержит количество сессий на этой неделе:
+---------+-----------+----------+-----------+
| week_pk | week_name | sessions | cohort_fk |
+---------+-----------+----------+-----------+
| 1 | Week 1 | 3 | 1 |
| 2 | Week 2 | 2 | 1 |
| 3 | Week 3 | 1 | 1 |
+---------+-----------+----------+-----------+
+-----------+-------------+-------------+-------------+
| cohort_pk | cohort_name | cohort_code | cohort_year |
+-----------+-------------+-------------+-------------+
| 1 | Some name | MICR8976 | 2014 |
+-----------+-------------+-------------+-------------+
Теперь я хочу расширить это, чтобы показать посетителям в виде дополнительных строк таблицы в строке сеанса и указать, на какой сессии они присутствовали. В таблице посещаемость:
+---------------+-------------+---------+-----------+---------+---------+
| attendance_pk | given_names | surname | cohort_fk | week_fk | session |
+---------------+-------------+---------+-----------+---------+---------+
| 1 | Bill | Smith | 1 | 2 | 2 |
| 2 | Fred | Jones | 1 | 1 | 1 |
+---------------+-------------+---------+-----------+---------+---------+
Результирующий HTML таблица будет как:
В любом случае помощь по модификации кода ниже, чтобы получить результаты согласно изображению выше ценится.
$cohort = '1';
$year = '2014';
$query = "SELECT * FROM cohort, week, attendance
WHERE week.cohort_fk = cohort.cohort_pk
AND attendance.week_fk = week.week_pk
AND attendance.cohort_fk = cohort.cohort_pk
AND cohort.cohort_year = '$year'
AND cohort.cohort_pk = '$cohort'";
$result = mysql_query($query, $connection) or die(mysql_error());
echo "<table border='1'>";
echo "<tr><td>Name</td>";
$second_row = "<tr><td>Session</td>";
while($row = mysql_fetch_assoc($result)){
$weekname = $row["week_name"];
$n_session = $row["sessions"];
echo "<td colspan='$n_session'>$weekname</td>";
for($i=1; $i<=$n_session; $i++){
$second_row .= "<td>S$i</td>";
}
}
echo "</tr>";
echo "$second_row</tr>";
echo "</table>";
?>
в вашем образце таблицы посещаемости вас есть 'cohort_pk' и в запросе, вы должны' cohort_fk' ... должно быть 'cohort_fk' в таблице ... правильно? –
Да, спасибо, что выбрали это. – IlludiumPu36