Jump to content

Выводить только товар с картинкой


Recommended Posts

Приветствую.

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

Код выборки:

$sql ='
 SELECT p.*, pl.*,i.`id_image`, il.`legend` ';
 if($products == "bestsell_product") {
  $sql .='FROM `'._DB_PREFIX_.'product_sale` ps
 LEFT JOIN `'._DB_PREFIX_.'product` p ON ps.`id_product` = p.`id_product` ';
 }
 else
  $sql .='FROM `'._DB_PREFIX_.'product` p ';

 $sql .= 'LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product`)
 LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
 LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')' .
 (($products == "featured_product") ? 'LEFT JOIN `'._DB_PREFIX_.'category_product` c ON (c.`id_product` = p.`id_product`)' : '').'
 WHERE pl.`id_lang` = '.(int)($params['cookie']->id_lang) .
 ' AND p.`active` = 1'.
 (($products == "featured_product") ? ' AND c.`id_category` = 2 ORDER BY p.`id_product` DESC ' : '').
 (($products == "new_product") ? ' ORDER BY p.`date_add` DESC' : '').
 (($products == "bestsell_product") ?
 'AND p.`id_product` IN (
  SELECT cp.`id_product`
  FROM `'._DB_PREFIX_.'category_group` cg
  LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
  WHERE cg.`id_group` '.$sqlGroups.'
 ) AND id_image <> NULL
 ORDER BY ps.`quantity` DESC' : '') .
 ($products_number > 0 ? ' LIMIT '.(int)($products_number) : '')
 ;

 

пробовал дописывать

AND id_image <> NULL

Результата не дало.

 

Модуль платный, поэтому наверное не могу приложить к посту. Если необходим, пишите в личку.

Я платил за модуль, но не за поддержку.

 

Буду благодарен.

post-566984-0-39543700-1370275248_thumb.png

Edited by Mourat (see edit history)
Link to comment
Share on other sites

298-315 строки

версия 1.5

 

$sql .= 'LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product`)
 LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
 LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')' .
 (($products == "featured_product") ? 'LEFT JOIN `'._DB_PREFIX_.'category_product` c ON (c.`id_product` = p.`id_product`)' : '').'
 WHERE pl.`id_lang` = '.(int)($params['cookie']->id_lang) .
 ' AND p.`active` = 1 AND i.`id_image` > 0'.
 (($products == "featured_product") ? ' AND c.`id_category` = 2 ORDER BY p.`id_product` DESC ' : '').
 (($products == "new_product") ? ' ORDER BY p.`date_add` DESC' : '').
 (($products == "bestsell_product") ?
 'AND p.`id_product` IN (
  SELECT cp.`id_product`
  FROM `'._DB_PREFIX_.'category_group` cg
  LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
  WHERE cg.`id_group` '.$sqlGroups.'
 )
 ORDER BY ps.`quantity` DESC' : '') .
 ($products_number > 0 ? ' LIMIT '.(int)($products_number) : '')
 ;

Link to comment
Share on other sites

я проверил на 1,5,4,1 всё ок

Отлично работает!

Вот что мы имеем в базе http://i.imgur.com/2YzzrRl.png

И результат на сайте http://medicalazur.fr/

 

Еще раз, большое спасибо.

 

PS. Спасибо в карман не положишь, поэтому я обратил внимание на твою подпись.

Link to comment
Share on other sites

сайт отключен)

Точно, забыл. Скинь свой ip если он у тебя не меняется каждые 5 минут, открою. Клиент закрылся пока товаром заполняет.

s3img_96809563_33_1.jpg

Edited by Mourat (see edit history)
  • Like 1
Link to comment
Share on other sites

Точно, забыл. Скинь свой ip если он у тебя не меняется каждые 5 минут, открою. Клиент закрылся пока товаром заполняет.

Я там дополнительно отключил отображение цены в шаблоне, если для товара цена не указана.

Link to comment
Share on other sites

×
×
  • Create New...