parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Проблема при группировке данных

Николай 17.01.2006 10:19

Задача: при выборе определенной категории товаров показать по каким параметрам может осуществляться фильтрация.

К примеру, к категории товаров с идентификатором = 1 принадлежат следующие преамбулы фильтров (текст, который идет перед наименованием фиотра) — 1, 2, 23.
И при выводе данных это должно выглядеть так:
Гардероб: мужской | женский | детский
Идентификатор преамбулы: 1
Стиль гардероба: casual | классический | модный | спортивный
Идентификатор преамбулы: 2
Сезон: зима | лето | осень
Идентификатор преамбулы: 23


Проблема:
Но т.к. данные группируются по идентификатору преамбулы, вывод данных выглядит так:

Гардероб: мужской | женский | детский
Идентификатор преамбулы: 1
Стиль гардероба: casual | классический | модный | спортивный
Идентификатор преамбулы: 2

Поскольку идентификатор преамбулы «Сезон» принадлежит двум категориям товаров (category_id = 1 и 3).

Не могу понять, как мне обойти эту проблему?

Таблица relations_context_filter
context_filter_id context_preamble_id category_id
1 1 1
2 1 1
3 1 1
4 2 1
5 2 1
6 2 1
7 3 4
8 23 3
9 23 3
10 23 3
11 2 1
8 23 1
9 23 1
10 23 1
1 1 3
2 1 3
3 1 3

Таблица context_preamble
context_preamble_id context_preamble
1 Гардероб
2 Стиль гардероба
3 Гардеробный
23 Сезон

Таблица context_filter
context context_filter_id
мужской 1
женский 2
детский 3
casual 4
классический 5
модный 6
гардеробный 7
зима 8
лето 9
осень 10
спортивный 11
#Получаем индентификатор выбранной категории товаров
$id[^form:id.int(0)]

^connect[$connect_string]{
	$context_filter[^table::sql{select
		context_filter.context_filter_id, context_filter.context, context_preamble.context_preamble_id, context_preamble.context_preamble, context_preamble.link_to_context_preamble_id, categories.category_id, companies.company_id
	from
		context_filter, context_preamble, relations_context_filter, categories, companies
	where 
		context_filter.context_filter_id = relations_context_filter.context_filter_id
		and context_preamble.context_preamble_id = relations_context_filter.context_preamble_id
		and categories.category_id = relations_context_filter.category_id
GROUP BY context_filter_id
}]


$context_preamble[^table::sql{SELECT relations_context_filter.category_id, relations_context_filter.context_preamble_id, context_preamble.context_preamble, context_preamble.link_to_context_preamble_id FROM context_preamble, relations_context_filter, categories WHERE relations_context_filter.context_preamble_id = context_preamble.context_preamble_id AND relations_context_filter.context_preamble_id = context_preamble.context_preamble_id GROUP BY context_preamble_id}]

^context_preamble.menu{
#если у выбранной категории есть преамбула контекстного фильтра выводим ее
	^if($context_preamble.category_id eq $id){
		<font color="cccccc">Идентификатор преамбулы: 	$context_preamble.context_preamble_id</font><br>
		<span>$context_preamble.context_preamble: </span> 
		$context_preamble_parent[$context_preamble.context_preamble_id]
		$contex[^context_filter.select($context_filter.context_preamble_id == $context_preamble_parent)]
			^contex.menu{
				<span style="color:green">$contex.context</span>
			}{
				<span style="color:green"> | </span>
			}
	}
}{
	^if($context_preamble.category_id eq $id && def $contex){
		<br>
	}
}


  • Проблема при группировке данных, Николай 17.01.2006 10:19
    • 10тонн, Александр Петросян (PAF) [M] 17.01.2006 14:38