Головоломка PHP/HTML
Добрый день, уже второй день ломаю мозг с, на первый взгляд, тривиальной задачей:
есть 2 таблички: author, message
author
| id | firstname | lastname |
| 1 | иван | боженов |
| 2 | артем | рукин |
| 3 | вася | лохматый |
message
| id | text | userid |
| 1 | Задание по физике | 2 |
| 2 | Задание по математике | 3 |
| 3 | Задание по алгебре | 1 |
| 4 | Задание по литературе | 1 |
необходимо вывести данные html-табличкой типа:
| пользователи | Задание по физике | Задание по математике | Задание по алгебре | Задание по литературе |
| иван боженов |______--__________|___________--__________|_________+_________|___________+__________|
| артем рукин |______ ++ ________|__________ --_________| _________ --_________ | ___________ -- ________|
| вася лохматый | _____-- _________|__________++ ________|__________ --_________| __________-- __________|
не могу понять как это правильно сделать... .
Из запроса:
SELECT author.lastname, author.firstname, message.text
FROM author
LEFT JOIN message ON message.userid = author.id
Я получаю информацию о том кто какие сообщения отправил и список пользователей
lastname firstname text
Боженов Иван Задание по алгебре
Боженов Иван Задание по литератур
Рукин Артем Задание по физике
Лохматый Вася Задание по математи
Из запроса:
SELECT text
FROM `message`
я получаю массив заданий который смогу разложить в шапке таблице
Задание по физике
Задание по математик
Задание по алгебре
Задание по литератур
но как правильно собрать всю таблицу в том виде в котором мне необходимо я пока не понял.
Подскажите пожалуйста, спасибо!
Сначала печатаю столбец - список пользователей, потом обхожу массив с сообщениями и после каждого задания делаю запрос с лефтджоином и обхожу массив по конкретному заданию - если в элементе NULL - печатаем -- если есть ответ печатаем ++,при таком подходе будет много запросов в базу - столько сколько сообщений отправлено а их может быть много.
Можно ли используя используя всего 1-2 запроса (например приведенных выше) собрать такую табличку?