Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Не могу оформить вывод... |
Автор: NFL 7.12.2009, 19:09 | ||
Суть следующая. Есть таблица в БД MySQL. Структура такая: id|predmet|predmet_id|surname|name|type_of_mark|klass|mark|teacher_who_posted|post_date (таблица для школьного онлайн-дневника) Описание полей: id - айди записи, автоинкрементное predmet - название предмета на русском (украинском) predmet_id - идентификатор предмета, не важно зачем surname - фамилия ученика name - имя ученика type_of_mark - тип оценки (контрольная/тематическая/текущая/... и тд) klass - класс, в котором учится ученик mark - оценка ученика по данному предмету (predmet) teacher_who_posted - фамилия учителя post_date - дата выставления оценки Есть запрос:
Выбираем все оценки за неделю для определенного класса (переменные $klass/$pred передаются методом "раком", но это не важно, все работает ![]() Задача в следующем: нужно воспроизвести страницу классного журнала: Фамилия, Имя |дата1|дата2|дата3|дата4|...| Фамилия1 Имя1 оц оц оц оц Фамилия2 имя2 оц оц оц оц ФамилияН ИмяН оц оц оц оц (оц - оценка этого ученика за определенную дату, если ученика не было на уроке - будет введена оценка "0", если есть 0 - вывести в клетке значение "н", если оценки 0 нет, и вообще оценки нет, то вывести просто пустую клетку) Не могу понять, как вывести такую таблицу? Кому не влом, помогите, а? А то я скоро ![]() |
Автор: v00d00 7.12.2009, 19:54 |
То что вы хотите сделать называется перекрестный запрос. Я могу ошибаться, но вроде MySQL не поддерживает встроенных механизмов для создания таких запросов. Однако, вот пример по вашей теме http://en.wikibooks.org/wiki/MySQL/Pivot_table И вот еще http://dev.mysql.com/tech-resources/articles/wizard/print_version.html Добавлено через 13 минут и 46 секунд Возможно в вашем случае сначала придется генерировать текст запроса средствами PHP чтобы вывести информацию для нужных дат или, как вариант, написать хранимую процедуру с параметром (дата) и передавать в неё текущую дату |
Автор: NFL 7.12.2009, 20:20 | ||
Тааак... Покурил мануал...
Ну в принципе очень похоже... Здесь мы выбираем имя, это понятно... 1-abs(), это тоже понятно.... Но что такое sign(exam-1)? |
Автор: NFL 8.12.2009, 22:43 | ||
Практически написал. осталась одна заморочка...
последний вопрос: как вместо echo str_repeat("<td>X</td>",sizeof($v)); выводить соответствующую дату? ее тоже закидывать в массив $arr и потом в foreach впихивать? |