Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Выборка данных (http://forum.oszone.net/showthread.php?t=272161)

Vitaliy21 16-11-2013 12:05 2255749

Выборка данных
 
Есть такое скрипт, который вытягивает данные из таблицы 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

Подскажите, как правильно прописать это в коде? Я в программирование не сильно, я как-то пробовал дописать, но скрипт постоянно ругается на ошибки, посмотрите пожалуйста что не так...


Время: 13:43.

Время: 13:43.
© OSzone.net 2001-