Есть такое скрипт, который вытягивает данные из таблицы SC_products
PHP код:
<?php
function smarty_function_last_products ($params, &$smarty){
$default_limit = 10;
$limit = (isset ($params['limit']) && $params['limit'] > 0)? $params['limit'] : $default_limit;
$products = db_phquery_fetch (DBRFETCH_ROW_ALL, 'SELECT `products`.*, `products`.'.LanguagesManager::sql_prepareField('name').' as `name`, `products`.'.LanguagesManager::sql_prepareField('brief_description').' as `brief_description`, `pictures`.`thumbnail` FROM `?#PRODUCTS_TABLE` `products` LEFT JOIN `?#PRODUCT_PICTURES` `pictures` USING (`productID`) WHERE `products`.`enabled` = 1 AND `products`.`categoryID` not in (0,1,10) AND `products`.`parent` not in (556) AND `pictures`.`photoID` = `products`.`default_picture` AND `products`.`in_stock` > 1 ORDER BY `products`.`productID` DESC LIMIT ?', $limit);
foreach ($products as $i => $product){
$products[$i]['PriceWithUnit'] = show_price ($product['Price']);
}
if ($products){
$smarty->assign ('products', $products);
$smarty->display (DIR_FTPLS.'/last_products.html');
}
}
?>
В этом коде я дописал строчку AND `products`.`categoryID` not in (0,1,10) где указываю ID категорий которые не нужно выводить, но нужно сделать чтобы при этом он учитывал родительские категории.
Судя по всему categoryID хранится в таблице products и указывает на принадлежность товара к категории, а вот parent (т.е. родительская категория) в таблице SC_categories, связь между двумя таблицами происходит так:
PHP код:
select * from sc_products inner join sc_categories on products.categoryID=sc_categories.categoryID
А для фильтрации я так понял добавлять where sc_categories.parent=... ну или not in
Подскажите, как правильно прописать это в коде? Я в программирование не сильно, я как-то пробовал дописать, но скрипт постоянно ругается на ошибки, посмотрите пожалуйста что не так...