Jump to content

kornand

Members
  • Posts

    5
  • Joined

  • Last visited

kornand's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Где включить? сам запрос работает и товары отображаются, но добавленное условие p.`quantity` > 0 не имеет никакого влияния на результат. Впрочем, это уже не так важно.. Пришло понимание, что для поисковиков лучше чтобы все товары отображались и страницы не выпадали из индекса.. следовательно, теперь мучаюсь над тем, чтобы товары с нулевыми остатками шли в самом конце на последних страницах.
  2. SergeyH, какая ошибка я сам не пойму, т.к. немного имел раньше дело с mysql и запрос мне кажется тоже верным, но не работает. Сейчас попробую как порекомендовал fraktall сделать - через phpmyadmin.
  3. Спасибо за внимание к моей проблеме! Попробовал так и задавая другие значения - данная конструкция почему-то не работает.. хотя, я не вижу где ошибка в данном запросе к базе.. буду копать дальше.. попробую не исключать из выдачи отсутствующие товары, а отображать их в конце - на последних страницах.. буду думать как.. если кто уже сталкивался, подскажите, пожалуйста. Спасибо!
  4. Здравствуйте! Может, кто-нибудь поможет решить проблему? Очень надо чтобы в списке товаров выводились только те, количество которых > 0. Покопавшись понял, что, видимо, надо подправить MySQL запрос в файле classes/Product.php, а именно в этой части кода (строки 576-605) . Только, сколько не бился, сам не могу грамотно написать. Понимаю, что надо вставить дополнительное условие where p.`quantity` > 0 , но что-то делаю неправильно. Кусок кода с которым, по моим предположениям, надо работать: static public function getProducts($id_lang, $start, $limit, $orderBy, $orderWay, $id_category = false, $only_active = false) { if (!Validate::isOrderBy($orderBy) OR !Validate::isOrderWay($orderWay)) die (Tools::displayError()); if ($orderBy == \'id_product\' OR $orderBy == \'price\' OR $orderBy == \'date_add\') $orderByPrefix = \'p\'; elseif ($orderBy == \'name\') $orderByPrefix = \'pl\'; elseif ($orderBy == \'position\') $orderByPrefix = \'c\'; $rq = Db::getInstance()->ExecuteS(\' SELECT p.*, pl.* , t.`rate` AS tax_rate, m.`name` AS manufacturer_name, s.`name` AS supplier_name FROM `\'._DB_PREFIX_.\'product` p LEFT JOIN `\'._DB_PREFIX_.\'product_lang` pl ON (p.`id_product` = pl.`id_product`) LEFT JOIN `\'._DB_PREFIX_.\'tax` t ON (t.`id_tax` = p.`id_tax`) LEFT JOIN `\'._DB_PREFIX_.\'manufacturer` m ON (m.`id_manufacturer` = p.`id_manufacturer`) LEFT JOIN `\'._DB_PREFIX_.\'supplier` s ON (s.`id_supplier` = p.`id_supplier`)\'. ($id_category ? \'LEFT JOIN `\'._DB_PREFIX_.\'category_product` c ON (c.`id_product` = p.`id_product`)\' : \'\').\' WHERE pl.`id_lang` = \'.intval($id_lang). ($id_category ? \' AND c.`id_category` = \'.intval($id_category) : \'\'). ($only_active ? \' AND p.`active` = 1\' : \'\').\' ORDER BY \'.(isset($orderByPrefix) ? pSQL($orderByPrefix).\'.\' : \'\').\'`\'.pSQL($orderBy).\'`\'.pSQL($orderWay). ($limit > 0 ? \' LIMIT \'.intval($start).\',\'.intval($limit) : \'\') ); if($orderBy == \'price\') Tools::orderbyPrice($rq,$orderWay); return ($rq); } Помогите, пожалуйста! Спасибо!
×
×
  • Create New...