список php в таблицу - PullRequest
0 голосов
/ 16 июня 2009

Я задал вопрос вчера , и полученный ответ ответил на первую часть моей проблемы - теперь у меня есть запрос, который генерирует список, подобный этому:

fname, sname, uname, assignment, task, grade
joe, blogs, joe.blogs, 1, 1, 52
joe, blogs, joe.blogs, 1, 2, 58
jim, blogs, jim.blogs, 1, 1, 95
jim, blogs, jim.blogs, 1, 2, 86
amy, blogs, amy.blogs, 1, 1, NULL
amy, blogs, amy.blogs, 1, 2, 76

и так далее. Он берет самую последнюю оценку из списка и все еще работает там, где ученик не получил оценку за задание.

Далее я хочу создать таблицу, которая выглядит примерно так:

      | Assignment 1    | Assignment 2    |
 Name |-----------------|-----------------|
      | Task 1 | Task 2 | Task 1 | Task 2 |
===========================================
Joe.. |  52    |  58    |  ..    |  ..    |
Jim.. |  95    |  86    |  ..    |  ..    |
Amy.. |  U     |  76    |  ..    |  ..    |
...

опять же, я делал подобные вещи раньше, но я знаю, что они были ужасно неэффективными - в идеале я хотел бы иметь возможность создавать эту таблицу за один проход массива.

Ответы [ 2 ]

1 голос
/ 24 июня 2009

Взгляните на предложение group by. Лично я им не пользуюсь, потому что считаю, что мне все равно придется в итоге foreach использовать набор результатов для создания вложенного массива, как я хочу, но это может быть то, что вы ищете. Вот ссылка , которая использует суммы , поэтому она не идеальна, но показывает немного больше информации о SQL.

1 голос
/ 16 июня 2009

Что вам нужно сделать, это добавить столбцы во время итерации по строкам. Возможно, сначала будет эффективно выполнить небольшой запрос, выбрав столбцы:

SELECT
  *
FROM assignment_tasks
ORDER BY
  Assignment_ID ASC,
  Task_ID ASC;

Затем адаптируйте запрос, загружая описанный вами массив, для упорядочения по пользователю, назначению, задаче. Таким образом, значения в массиве находятся в том же порядке, что и в таблице (строка за строкой, слева направо). Если значение отсутствует (или NULL, не имеет значения), выведите U.

Конечно, это предполагает, что количество назначений и задач мало по сравнению с количеством записей в массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...