parser

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

 

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

Интернет-магазин - как вытащить все "новинки"?

Bella 06.12.2007 22:26

Сижу изобретаю "велосипед", т.е. интернет-магазин.
Решила сделать вывод в каждом разделе товаров из серии "Новинки", "Рекомендуем", "Спецпредложения".
И тут все застопорилось. Проблема в правильном построении запроса к БД.

Есть 3 таблицы.
1-я, shop_group - содержит перечень основных разделов (типа Кофе, Чай, Посуда). Поля: id, sort_order, group_name, group_show (скрыть/показать раздел).

2-я, shop_sub_group - содержит перечень подразделов (типа Кофе в банках, Кофе в зернах, Чай черный, Чай зеленый). Поля: id, sort_order, parent_group (содержит id разделов), sub_group_name, sub_group_show (скрыть/показать подраздел).

3-я, shop_positions - таблица с самими товарами. Поля: id, parent_sub_group (содержит id подразделов), positions_name, producer, unit, price, description, positions_news (новинка), positions_recommend (рекомендуем), positions_special (спецпредложение), show_positions (скрыть/показать товар).

Хотела сделать так, чтобы при заходе в раздел, например "Кофе", покупателю на витрине показывались товары: 3 новинки, 3 рекомендуемых товара, 3 спецпредложения, соот. из этого раздела.

Запрос типа:
	$dir[^table::sql{SELECT
				id,
				parent_group
			FROM
				shop_sub_group
			WHERE
				parent_group = '$form:subs'
	}]
				
	$positions_news[^table::sql{SELECT
					id,
					positions_news,
					positions_name,
					producer,
					unit,
					price,
					description
				    FROM
					shop_positions
				    WHERE
					show_positions = 1
				    AND
					positions_news = 1							
				    ^dir.menu{
				    AND
					parent_sub_group = $dir.id										    }
				ORDER BY RAND() limit 3								
		}]
не работает.
Как достать все "новинки", не могу сообразить :( ибо parent_sub_group может иметь столько значений, сколько подразделов...

Как решить эту проблему? Помогите, плз!!!