Помогите сделать сравнение комплектаций

vtec

Новичок
Помогите сделать сравнение комплектаций

Хочу сделать похожее на http://www.suvrate.ru/carindex/CarModificationComplectations_11128.ext

То есть есть модель авто, у этой модели есть комплектации, в данном примере 2 шт.

Как правильно организовать таблицы чтобы это осуществить?
 

Romantik

TeaM PHPClub
vtec
для начала САМ пойми логику и составь маленькое тех. задание.
а потом спрашивай, а не "сделаейте мне как там"!
 

vtec

Новичок
На данный момент у меня есть:
Таблицы:

Комплектации
id | Название комплек. | Цена
---------------------------------------
1 | Комплектация 1 | 123
2 | Комплектация 2 | 456

Компоненты
id | Название |
-----------------------
1 | Люк |
2 | Кондиционер|

Соеденительная таблица
Комплектации&Компоненты
id комплекта | id компонент
------------------------------------
1__________| 1_________
1__________| 2_________
2__________| 2_________

Из последней таблице видно что,
1-ой комплектации принадлежит люк и кондиционер
2-ой комплектации принадлежит только кондиционер

Правильно ли я организовал и как это теперь вывести в таблицу сравнении как по ссылке выше?

-~{}~ 11.12.07 17:21:

По большей степени интересует как сравнить и вывести в таком формате???
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
vtec
По большей степени интересует как сравнить и вывести в таком формате???
Выбрать СРАЗУ 2 комплектации ничего не сравнивая.
расставить +/-
 

phpdev2007

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

vtec

Новичок
Ясно, тогда как расставить так чтобы табличкой получилось

кондиционер есть и в первой комплект. и во второй комплект.:

____________Комплект1 | Комплкт2|
кондиционер |____+____|____+___|

???
Я не могу понять как это организовать, толи как то через sql толи это массивы, либо каким то другим способом...
 

phpdev2007

Новичок
vtec
Все таки решили база данных окей, теперь отложите код, и создайте список вопросов на которых должна отвечать база данных, после чего проинспектируйте ее.

Как бы я сделал - не говорю что это последняя инстанция, но по ходу:

1)У вас есть различные комплектации, делаем отдельную таблицу которая содержит id комплектации уникальный, ее описание.

2)Есть некие компоненты которые могут содержать различные комп. хорошо делаем для них также отдельную таблицу с уник. id и описаниям

3) Каждая комплектация уникальная? хорошо делаем третью таблицу в которой также есть уникальный id, также должна содержать id комплектации и id компонента который входит в данную комплектацию.

Все теперь для примера у нас есть комплектация с названиям "База" она имет уникальный id = 1 таблица 1, и есть компонент "Кондиционер" с уник. id 10001 таблица 2 нам нужно добавить запись в 3 таблицу 1|10001
 

vtec

Новичок
Это уже осуществлено, смотреть выше.
Соеденительная таблица (Комплектации&Компоненты)
Меня интересует как вывести в таблице сие произведение.
То есть проставть + и - в той комплектации где допустим есть кондиционер.
 

phpdev2007

Новичок
vtec
ну и в чем проблема?, получили что нужно, в цикле вывели как нужно.
 

vtec

Новичок
Да не все так просто. я уже 3-ий день маюсь, чтобы вывести таблицой. Я не могу догнать с чего начинатьвывод толи с комплектаций, толи с компонентов.
Как вывести правильно что бы эти две комплектации выводили компоненты в одинаковых строках?
 

Bitterman

Новичок
Не знаю как правильно, но я бы пошел не от комплектаций, а от компонент. То есть что-нить в этом духе:
Код:
SELECT *
FROM component as cmpn
LEFT JOIN [таблица_связей] as cmpl_cmpn ON cmpl_cmpn.ComponentID=cmpn.ID
LEFT JOIN [комплектации] as cmpl1 ON cmpl1.ID=cmpl_cmpn.ComplectID AND cmpl_cmpn.ComplectID=[ID первой комлектации]
LEFT JOIN [комплектации] as cmpl2 ON cmpl2.ID=cmpl_cmpn.ComplectID AND cmpl_cmpn.ComplectID=[ID второй комлектации]
WHERE cmpl1.ID IS NOT NULL or  cmpl2.ID IS NOT NULL
 
Сверху