Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Получение данных из 5 таблиц и построение правильного массива
Есть 5 таблиц, которые организуют некую группировку определенных групп>параметров>значений
Для наглядности разместил все на http://sqlfiddle[dot]com/#!2/c6f9c/1
На выходе нужно получать массив
Группа 1
----Параметр 1
--------Значение 1
--------Значение 2
---- Параметр 2
--------Значение 3
Группа 2
----Параметр 3
--------Значение 4
--------Значение 5
---- Параметр 4
--------Значение 6
Без группы
----Параметр 5
--------Значение 7
--------Значение 8
Значение 9 (без группы и без параметра)
Значение 10 (без группы и без параметра)
То есть группа может быть не указана вообще, а значение может быть не привязано к параметру.
Таблицы
filter_group - группы
filter_name - параметры (тут же привязывается и группа, к которой параметр может принадлежать(не обязательно))
filter_value - значения
Таблицы связей
filter_name_to_value - таблица для связи параметров и значений. Значения могут быть не привязаны, и тут их не будет
filter_param - Это окончательная связь значения и товара(новости, статьи)
Вопрос в том, как лучше организовать выборку из БД и как получить нужный массив, чтобы без проблем разбирать его в smarty.
Так же интересует как лучше расставлять индексы и т.д... Выборка идет по ID товара пока только.
У меня почти такая же структура, правда таблицы 4. Сами запросы тут http://sqlfiddle[dot]com/#!2/c6f9c/1
Может кто поможет решить задачу? Был бы признателен за помощь. А то четыре часа голову ломаю, ничего не выходит.
dropoff
Отправлено: 08 Октября, 2012 - 22:49:27
Посетитель
Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010
Помог: 0 раз(а)
Ребята, может есть у кого идеи? Очень надо, а сделать не получается.
bossound
Отправлено: 10 Октября, 2012 - 09:40:17
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Нояб. 2011 Откуда: УЛЛИ
Помог: 1 раз(а)
dropoff пишет:
Ребята, может есть у кого идеи? Очень надо, а сделать не получается.
идея проста строим 4 подзапроса и на основе их делаем 5 запрос и получаем себе временную таблицу с нужным нам набором полей.
вот примерно у меня так выбирается номеклатура из 5 таблиц
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.