Я боролся некоторое время с этим; Я постараюсь объяснить это здесь как можно проще.
Рассмотрим эту таблицу MySQL:
+----------+-----------+---------+--------+
|status_id |session_id |pilot_id |present |
+----------+-----------+---------+--------+
|1 |61 |901 |1 |
|2 |63 |901 |1 |
|3 |62 |901 |0 |
|4 |62 |902 |1 |
|5 |63 |903 |1 |
+----------+-----------+---------+--------+
И session_id
, и pilot_id
- это внешние ключи, ссылающиеся на первичный ключ в другой таблице. Один и тот же pilot_id
может быть связан с разными session_id
, но каждая комбинация pilot_id
- session_id
уникальна.
Мне нужно создать таблицу HTML (в PHP), которая бы отображала данные следующим образом:
+----------+---------+---------+---------+
| |61 |62 |63 |
+----------+---------+---------+---------+
|901 |X | |X |
|902 | |X | |
|903 | | |X |
+----------+---------+---------+---------+
Следовательно, строки pilot_id
, а столбцы session_id
. Если комбинация pilot_id
- session_id
имеет значение present
, равное 1, следует проверить соответствующую ячейку. (т. е. когда комбинация строк равна нулю или комбинация не существует в таблице MySQL, в таблице HTML ничего не должно отображаться)
Уф.
Есть идеи?
Спасибо!
Я попробовал ответ, предложенный Эриско, но я в замешательстве. (поле комментария слишком мало для моего объяснения, поэтому это обновление моего вопроса).
Это фактические данные, с которыми я работаю:
+----------+-----------+---------+--------+
|status_id |session_id |pilot_id |present |
+----------+-----------+---------+--------+
|7 |65 |33 |1 |
|8 |66 |33 |1 |
|9 |65 |17 |0 |
|10 |66 |16 |1 |
+----------+-----------+---------+--------+
Я использую $rows = mysqli_fetch_array($result);
. Я подтвердил, что запрос возвращает правильные данные.
Однако, когда я использую ответ, предложенный Эриксо, я получаю, казалось бы, произвольные данные. Вот сгенерированная таблица HTML:
+----------+---------+---------+---------+---------+
| |1 |3 |6 |7 |
+----------+---------+---------+---------+---------+
|1 |X | | | |
|3 | | | | |
|6 | | | | |
|7 | | | | |
+----------+---------+---------+---------+---------+
Кроме того, позиция 'X' остается неизменной независимо от значений present
.
Есть идеи, почему это происходит?
Спасибо!