[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с проектированием БД
lastalert
Вопрос касается больше проектирования БД, чем php. Да пощадит меня модератор за, возможно, не ту категорию этого поста :)

Суть задачи: при просмотре товаров определенной категории нужно цены умножать на коэффициент из таблицы tbl_price_coef, связь идет по ID категории (tbl_category.id = tbl_product.cat_id = tbl_price_coef.cat_id). В моем случае все работает только если категория не является родительской (т.к. ID'ы отличаются).
    
$cat_id = (int) $_GET['cat_id'];
$coeffs = $db->getAll("SELECT * FROM `it_price_coef` WHERE `cat_id`={$cat_id} ORDER BY `id` ASC");
...

$prodCoefCnt = count($coeffs);
...

for ($i = 0; $i < $prodCnt; $i++) { // прогон по всем товарам категории
for ($j = 0; $j < $prodCoefCnt; $j++) { // прогон по всем коэффициентам с ID = $cat_id
// проверка ценового диапазона товара

if (($product[$i]['price'] >= $coeffs[$j]['price_min_range']) && ($product[$i]['price'] <= $coeffs[$j]['price_max_range'])) {
$product[$i]['price'] += $product[$i]['price'] * $coeffs[$j]['coef'];
}
}
}

В таблице категорий есть поле parent_id (для хранения ID родительской категории). Например, род. категория "ноутбуки" (id=8), а в ней содержатся категории "HP"(parent_id=8), "Acer"(parent_id=8) и др.

Подскажите, как переработать структуру таблиц, чтобы код выше понимал и родительские категории?



Спустя 3 часа, 1 минута, 45 секунд (18.05.2012 - 19:18) vagrand написал(а):
Тут нужно уточнение, насколько я понял у тебя коэффициент для каждой категории товаров разный, если это так, то в случае с корневой категорией какой из нескольких коэффициентов ее дочерних категорий ты хочешь выбрать?

Спустя 1 час, 7 минут, 59 секунд (18.05.2012 - 20:26) lastalert написал(а):
vagrand, к дочерним применять коэфф. категории, которая находится на 1 уровень выше, не знаю насколько доступно объяснил, попробую еще так:
Пример дерева категорий:


/ Ноутбуки
------HP
------Acer
------Samsung
/ Телефоны
------Nokia
------HTC
------Samsung

к товарам в категориях HP, Acer ... применить коэффициент категории "Ноутбуки", к категориям "Nokia", "HTC"... коэфф. от "Телефоны"

Спустя 1 час, 53 минуты, 8 секунд (18.05.2012 - 22:19) vagrand написал(а):
тогда я не понимаю суть проблемы

Спустя 58 минут, 12 секунд (18.05.2012 - 23:17) lastalert написал(а):
сайт не мой, чужой переделываю.
в общем выяснилось что в самой БД какая-то фигня.
при редактировании категории с админки у нее один ID, а при просмотре на сайте - совсем другой о_О там что-то страшное...


_____________
...think about your actions.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.