[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Счетчик в каталоге
Cluch
Есть каталог товаров, разделенный на несколько уровней.
Каждая группа товаров на 1м уровне делится на подгруппы во 2м уровне, а те, в свою очередь, еще на подгруппы 3го уровня, и т.д.


Формируется это всё из таблицы:

ID_|_Level_|___Name_______|___Parent_ID
_1___ 1 _______ Группа1 ____________ 0
_2___ 1 _______ Группа2 ____________ 0

_3___ 2 _______ Подгруппа 1а ________ 1
_4___ 2 _______ Подгруппа 1б ________ 1
_5___ 2 _______ Подгруппа 2а_________ 2
_6___ 2 _______ Подгруппа 2б ________ 2

_7___ 3 _______ Подгруппа1а-1 ________ 3
_8___ 3 _______ Подгруппа1а-2 ________ 3
_9___ 3 _______ Подгруппа1б-1 ________ 4
_10__ 3 _______ Подгруппа1б-2 ________ 4
_______________ ... __________________

, где Parent_ID - ID группы, в которой находится данная подгруппа.


Выводится каталог так:
- в <tr> таблицы выводятся группы первого уровня, по клику на которых POST'ом передается их ID.
- страница перезагружается, и по переданному ID селектятся подгруппы c их ID для выборки дочерних подгрупп следующих уровней.
- на самом последнем уровне берется ID последней выбранной подгруппы, и по нему из другой таблицы Товары селектятся все товары, где в поле ID_товарной_группы звучит этот ID


Нужно для всех групп сформированной таблицы вывести количество товаров, входящих в их дочерние подгруппы. Т.е чтобы, к примеру, для Группа1 считалось общее количество товаров, входящих в подгруппы Подгруппа 1а (1а-1, 1а-2, 1а-3..), Подгруппа 1б (1б-1, 1б-2, 1б-3..), т .д
Как такое можно реализовать?
vagrand
Cluch
Цитата
Как такое можно реализовать?


На мой взгляд самым верным способом будет добавление поля product_numbers в таблицу со списком групп. Затем пишите 3 триггера для таблицы товаров, на: добавление, изменений и удаление товара. В этих триггерах вы меняете значение этого поля у тех групп, к которым привязаны товары.
Ну и саму привязку товара к группам нужно организовать через отдельную таблицу, где для каждого товара вы ставите в соответствие весь набор групп, в которые он входит.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Cluch
Мм, а без триггеров никак?
Valick
Cluch, почему никак, можно конечно. Меняйте архитектуру БД в пользу nested sets.

_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

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