PHP+MYSQL характеристики к товарам

PN
На сайте с 01.05.2008
Offline
113
2357

Товарищи, есть проблемка, у меня есть разделение на тип товара, в нем перчень видов характеристик, и отдельно таблица со значениями этих характеристик.

При сохраенении все ок, есть ИД ТОВАРА, ЗНАЧЕНИЕ, ИД ПОЛЯ К КОТОРОМУ ЗНАЧЕНИЕ

Но вот когда эти данные показать нужно, получается фигня, т.к. вынимаю я данные в таком же порядке. Как сделать обратный порядок? Т.к. сначала выйнять значения, и если они есть - то вытащить названия тех полей. При этом ВИДЫ ХАРАКТЕРИСТИК должны отображаться в указанном (нужном) порядке. Кто знает? Выручайте

A1
На сайте с 10.03.2007
Offline
52
#1

Выложи код, будем разбираться

PN
На сайте с 01.05.2008
Offline
113
#2

MYSQL БАЗА

shop_catalog_page_properties - тут хранятся значения если к товару устанавливается какой-то параметр из характеристик

shop_catalog_product_types - тип характристика (типа ВЕС, РОСТ, РАЗМЕР...)

shop_catalog_product_types - тут типы товаров (т.е. если меняем тип, то меняется список значений который нужно заполнять).

С заполнением (сохранением) значений к товару уже все ок, работает.

Нужен PHP КОД?

ВОТ ПОДРОБНАЯ СХЕМА БАЗЫ



---------- Добавлено 29.10.2012 в 13:27 ----------

По сути сложность в том, что значений у одного товара, и одного типа характеристики, может быть несколько, т.к. используется ЧЕК БОКС, а так же нужно отсортировать по порядку по таблице shop_catalog_product_types

siv1987
На сайте с 02.04.2009
Offline
427
#3

SQL запросы покажите

PN
На сайте с 01.05.2008
Offline
113
#4

ДА помоему нету такой обратной реверсии в запросах, прийдется выйнять через INNER JOIN ...

Потом уже из того что выйму рисовать значения (выводить список)..

IL
На сайте с 20.04.2007
Offline
435
#5

По идее как-то может прокатить (разве что.. обе таблицы "портянки" длинные.. и JOIN-ить их не совсем правильно):

характеристики INNER JOIN значения

ORDER BY характеристики.sort_order

Или сопоставлять неотсортированные значения отсортированным по порядку характеристикам.

p.s. "форма заполнения" больше смахивает на форму фильтра-поиска :)

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
PN
На сайте с 01.05.2008
Offline
113
#6

ТАк потом это все в форму поиска уже и превращается...

Разрулил все кроме одного. У меня к одному товару хранится чекбокс значения в базе, т.е. не только =Х, а возможно к одному товару и =У и =Z

И возникла проблема.

Например челвоек выбирает несколько чек боксов - ЗЕЛЕНЫЙ СИННИЙ.

У товара они отмечены. Но через инер джоин не видятся. В SQL они вбиватся как AND property_val="зеленый" AND property_val="синий"

Если делать OR то получается каша т.к. выниматся все пордряд.. Если через AND то MYSQL не понимает что один товар может иметь два значения... Как сгрупировать эти property_val

bay_ebook
На сайте с 28.05.2010
Offline
111
#7
Prosto_niki:
ТАк потом это все в форму поиска уже и превращается...
У товара они отмечены. Но через инер джоин не видятся. В SQL они вбиватся как AND property_val="зеленый" AND property_val="синий"

А просто в скобки взять OR?


AND (property_val="зеленый" OR property_val="синий")

Думаю будет работать нормально :) и вытягивать все подряд перестанет :)

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
PN
На сайте с 01.05.2008
Offline
113
#8

в INNER JOIN пишу это правильно же?

PN
На сайте с 01.05.2008
Offline
113
#9

Нашел в чем лажа. У меня идет выборка типа и парент_ид к свойвту и в нем = чему-то, потом в этом же запросе И парент_ид=следуюющее значение

Вобщем при выборе двух свойств - возвращает 0. Как это исправить? Есть что-то типа AND ( OR parent=1 (and value=gree or value=red)) OR parent=2 (and value=da or value=net))

bay_ebook
На сайте с 28.05.2010
Offline
111
#10
Prosto_niki:
Есть что-то типа AND ( OR parent=1 (and value=gree or value=red)) OR parent=2 (and value=da or value=net))

Честно - это ужас, 5 минут пытался понять, что там.

Выглядеть должно примерно так (могу ошибиться, так как не совсем понял, что нужно)


AND ((`parent`= '1' AND (`value`= 'gree' OR `value`= 'red')) OR (`parent`= '2' AND (`value`= 'da' OR `value`= 'net')))

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий