Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Горизонтальная таблица с неизвестным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
Имеется такая база (см. рис), нужно в броузере вывести информацию в табличном виде как это указано на рисунке. Не думал что будет так сложно. Даже не мог решит в каком разделе форума разместить вопрос. проблемы исходят из того что горизонтально количество столбцов зависит от результата выборки из одной таблицы, плюс вертикально количество строк зависит от результата выборки из второй таблицы. нужны идеи как все решить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 15:16 |
|
||
|
Горизонтальная таблица с неизвестным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
Avtopic, вывод "в цикле" как по столбцам, так и по строкам.Запрос формировать динамически на клиенте как вглыбь (пагинация строк), так и вширь (пагинация столбцов). И там и там, для удобства сделать пагинацию через ajax или js, смотря какой объем вглыбь/вширь... выборку для пагинации вширь можно попытаться хранить в сессии, или "довыбирать" строя поля запроса "на лету" - смотря какой объем "вглыбь"... как-то так, не вижу "сложностей" для идей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 08:49 |
|
||
|
Горизонтальная таблица с неизвестным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
Приходится сперва создавать массив до вывода таблицы, и сформировав массив потом уже выводить таблицу. Так и делаю и все работает, но избыточно, и вопрос по этому поставил, таблицу, после выборки из базы, до вывода приходится хранить в массиве, так как заранее неизвестно количество столбцов и строк, и в случае пагинации тоже, на последнем пейдже тоже неизвестно сколько столбцов осталось выводить. и может можно обойти массив, но наверно невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 18:33 |
|
||
|
Горизонтальная таблица с неизвестным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
Avtopic, не буду критиковать структуру... видимо была на то причина. Просто замечу, что тип операции с данными по самой операции связан через документ почему-то. Я бы делать так не стал. Но это ладно :) дела не касается. Правильно я понимаю, что связь между документами и продукцией является "многие к многим" и осуществляется через таблицу операций? Если правильно всё понял, то там же всё легко. Обычный JOIN с сортировкой по нужным столбцам в таблице операций, а потом просто двойной цикл (по горизонтали и по вертикали). Если нужно отрезать только малую часть таблиц (как сказали нужны paginator'ы по горизонтали и вертикали), то джойним не сами таблицы, а временные с соответствующими выборками Код: sql 1. 2. 3. 4. 5. Количество столбцов можно получить обычной выборкой COUNT по таблице document. Ну вроде всё. Не вижу причин, почему надо держать какие-то таблицы в памяти из-за динамики :) Получается выборка, где каждому продукту соответствует выбранное количество документов... при чём, если в таблице операций такой связки нету, то bound устанавливается в 0. Единственное - это cross join ... Но тут без него никак... всё остальное будет затратное, так как каждому продукту не будет сопоставлен каждый документ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 01:12 |
|
||
|
Горизонтальная таблица с неизвестным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
hotfix. Когда правил сообщение, опечатался :) И вместо xx соответственно подставляем нужные циферки. Код: sql 1. 2. 3. 4. 5. Если нужны не все документы, а только те, которые участвовали в операциях, то в запрос для получения временной таблицы по таблице document, вставляем inner join операций и продуктов с on по соответствующим полям. Таким образом во временную таблицу попадут только те документы, которым соответствует хотя бы один из выбираемых продуктов. Вот... теперь точно всё :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 01:24 |
|
||
|
Горизонтальная таблица с неизвестным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
спасибо за ответ Програмёрне буду критиковать структуру... видимо была на то причина. Просто замечу, что тип операции с данными по самой операции связан через документ почему-то. Я бы делать так не стал. Но это ладно :) дела не касается.. а вот как раз хотелось бы узнать, комментарии, если можно. тип операции здесь определяет направление движения товара, от поставщика к организации, или от организации к поставщику ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 01:44 |
|
||
|
Горизонтальная таблица с неизвестным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
Avtopicспасибо за ответ Програмёрне буду критиковать структуру... видимо была на то причина. Просто замечу, что тип операции с данными по самой операции связан через документ почему-то. Я бы делать так не стал. Но это ладно :) дела не касается.. а вот как раз хотелось бы узнать, комментарии, если можно. тип операции здесь определяет направление движения товара, от поставщика к организации, или от организации к поставщику А... ну тут неочевидность названий :) Я бы таблицу эту назвал не "тип операции", а "тип документа"... Хотя даже так было бы не очень круто, ведь можно спутать с назначением документа (аля "накладная", "отчёт" и т.д.), потому лучшее название для таблицы это "направление документа" (по-моему так лучше всего). И тут сразу пропадают все вопросы, так как таблица явно связана с документами, а именно показывает откуда куда документ будет направлен. Ну и в таблице с документами я бы поле тоже назвал бы соответствующе "направление". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 02:01 |
|
||
|
Горизонтальная таблица с неизвестным количеством столбцов
|
|||
|---|---|---|---|
|
#18+
спасибо ! : ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 12:51 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38567936&tid=1463018]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 419ms |

| 0 / 0 |
