parser

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

 

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

Вывод корневых элементов каталога товаров по определенному параметру

Николай 30.01.2006 15:30

Есть каталог товаров, в определенной таблице БД записывается принадлежность категорий товаров какой-либо компании.

Задача: вывести корневые категории товаров, т.е., те которые не принадлежат другим категориям (имеют parent_id = 0), выбранной пользователем компании.

Проблема:
При текущей реализации это выглядит так:
Гардероб

Медецина
Гардероб
Гардероб
Хотя должно выглядеть так:
Гардероб
Медецина
Пожалуйста, подскажите что сделано не так

Вот код текущей задачи:
#получаем идентификатор выбранной компании
$step_4(^form:step_4.int(0))

$relations_companies[^table::sql{SELECT company_id, category_id FROM relations_companies}]

^connect[$connect_string]{
		$categories[^table::sql{select
			category_id, parent_id, category_name, link_to_category_id
		from
			categories
	GROUP BY category_id
	}]

$tmp_relations_companies[^relations_companies.select($relations_companies.company_id eq $step_4)]
^tmp_relations_companies.menu{
$tmp_categories[^categories.select($categories.category_id eq $tmp_relations_companies.category_id)]
$categories_root[^categories.select($categories.link_to_category_id eq '0' && $categories.category_id eq $tmp_relations_companies.category_id)]
	$parent[$categories_root.parent_id]
	$tmp[^categories.select($categories.category_id eq $parent && $categories.parent_id eq '0')]
			$tmp.category_name
					





}{
	^if(def $tmp_categories){<br>}
}
Таблица БД relations_companies[b]
company_id 	category_id 
1	1
2	3
1	45
1	0
1	47
40	147
2	44
1	0
1	0
1	10
40	149
35	47
35	49
35	51
1	3
[b]Таблица БД categories
category_id 	parent_id 	category_name 	link_to_category_id 
1	4	Верхняя одежда	0
2	3	Спортивная	0
3	4	Обувь	0
4	0	Гардероб	0
13	1	 	2
8	0	Медецина	0
10	4	Нижнее белье	0
11	3	Домашняя	0
12	1	 	11
14	3	Какая-то	0
15	1	 	14
39	1	Плащи	0
37	0	Колеса	0
36	0	Еда	0
44	3	Трекинг	0
45	1	Куртки	0
46	8	Стоматолагические кабинеты	0
47	8	Аптеки	0
48	8	Косметические кабинеты	0
49	37	Сервисы	0
50	37	Мойки	0
51	36	Рестораны	0
52	36	Магазины	0
149	148	Диваны	0
147	67	Интерьер	0
148	67	Мебель	0
67	0	Дом	0