Порядок данных приводит к столбцам вместо строк - PullRequest
0 голосов
/ 27 февраля 2010

Моя таблица MySQL упорядочена следующим образом:

| user_id |   day   | time | job |    
|--------------------------------|    
|     1   | 2455251 |  08  | T23 |    
|     1   | 2455252 |  14  | T14 |    
|     1   | 2455253 |  22  | T27 |
|     2   | 2455251 |  06  | T16 |
|     2   | 2455252 |  12  | T64 |
|     2   | 2455253 |  20  | T38 |
  etc...

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

user_id, day1, time1, job1, day2, time2, job2, day3, time3, job3

значения могут быть:

1, 2455251, 08, T23, 2455252, 14, T14, 2455253, 22, T27
2, 2455251, 06, T16, 2455252, 12, T64, 2455253, 20, T38
   etc...

Я чувствую, что не могу сделать запрос ... (Я плохо разбираюсь в базах данных). У тебя есть идея? Кто-нибудь из вас испытывал это раньше?

1 Ответ

3 голосов
/ 27 февраля 2010

Ваше желание возможно сделать, но не с SQL.

Вы говорите о двух разных идеях: запрос данных и их отображение. Если у вас нет проблем с запросами, все, что вам нужно сделать сейчас, это работать с дисплеем.

Какое программное обеспечение отображает базу данных? Если вы надеетесь, что клиент MySQL справится с этим за вас, боюсь, вы будете разочарованы. Вам повезет больше, если вы пишете код.

Где вы хотите, чтобы данные в конечном итоге? В файле? На дисплее?

ОБНОВЛЕНИЕ: Если вы используете Ajax для запросов к базе данных, задача страницы - отформатировать ее так, как вам нравится.

Возможно, вы по-прежнему находите это сложной задачей. (Это тоже будет выглядеть не очень хорошо.)

Легко видеть, как это будет выглядеть для нескольких строк. Но что, если запрос возвращает десятки? Сотни? Как вы ограничиваете количество строк, которые возвращаются?

Если я хочу получить этот формат из сервер, это потому, что я не хочу, чтобы мой JavaScript займет слишком много времени, чтобы отобразить результат на стороне клиента.

Похоже, вы виноваты в преждевременной оптимизации для меня.

Если вы получили столько данных с сервера, я бы сказал, что у вас есть более серьезная проблема. Сделайте так, чтобы он работал на клиенте, которому он принадлежит, а затем посмотрите, приемлемо ли ваше исполнение.

Вот еще одна идея: я считаю, что этот способ рендеринга данных оператора будет выглядеть плохо и будет бесполезен для операторов. Какую проблему вы действительно пытаетесь решить здесь? Ajax и библиотеки, такие как jQuery UI, YUI и т. Д., Предлагают несколько действительно хороших способов визуализации данных, которые выходят далеко за рамки возможностей HTML. Почему бы не изучить некоторые альтернативные подходы?

Если вы можете использовать CSS в PHP, я бы рекомендовал использовать CSS для позиционирования ваших данных. Просто загрузите строки в DOM и позвольте CSS их разложить.

...