Глючек в в функции iShop при выборе след./предыдущего товара

+16
1.76K
Обнаружил глючек в функции getItemNav. Оказалось, что она не учитывает что след. или предыдущ. товар может быть выключен.

Переписанная мной функция тут:

  1.  
  2. public function getItemNav($item_id, $cat_id) {
  3.  
  4. $ordering = $this->inDB->get_field('cms_shop_items_cats', "item_id={$item_id} AND category_id={$cat_id}", 'ordering');
  5.  
  6.  
  7. $nav = array();
  8.  
  9. $sql = "SELECT i.id as id, i.seolink as seolink, ic.ordering as ordering, i.title as title
  10. FROM cms_shop_items i, cms_shop_items_cats ic
  11. WHERE ic.item_id = i.id
  12. AND ic.category_id = {$cat_id}
  13. AND (ic.ordering < {$ordering}) AND i.published=1 ORDER BY ordering DESC LIMIT 1";
  14.  
  15. $result = $this->inDB->query($sql);
  16. $nav['prev'] = $this->inDB->fetch_assoc($result);
  17.  
  18. $sql = "SELECT i.id as id, i.seolink as seolink, ic.ordering as ordering, i.title as title
  19. FROM cms_shop_items i, cms_shop_items_cats ic
  20. WHERE ic.item_id = i.id
  21. AND ic.category_id = {$cat_id}
  22. AND (ic.ordering > {$ordering}) AND i.published=1 ORDER BY ordering LIMIT 1";
  23.  
  24. $result = $this->inDB->query($sql);
  25. $nav['next'] = $this->inDB->fetch_assoc($result);
  26.  
  27.  
  28. return $nav;
  29.  
  30. }
  31.  
+1
lokanaft lokanaft 11 лет назад #
А чё не 10 дополнительных запросов?
0
vicoder vicoder 11 лет назад #
достаточно и трех) На самом деле, буду признателен, если кто-то оптимизирует эту функцию, при этом чтобы учитывались выключенные товары (published=0)
0
Bubble Gumoff Bubble Gumoff 11 лет назад #
ай молодца - сам допёр))
0
Антон Самарин Антон Самарин 10 лет назад #
Как изменить этот код, чтобы предыдущий и следующий товары показывались по цене? Предыдущий - с меньшей ценой, следующий - с большей

Еще от автора

связка ishop и программа Покупка на Яндекс-маркете (2)
продолжение http://instantcms.ru/blogs/uluchshenija/svjazka-ishop-i-programa-pokupka-na-jandeks-markete.htmlпервой части
связка ishop и программа Покупка на Яндекс-маркете
Яндекс маркет позволяет заказывать товары непосредственно с яндекса - удобная штука.
Сортировка дополнительных картинок в шопе drag'n'drop
Сделал возможность перемещения дополнительных картинок в шопе: т.е. можно мышкой взять и перетащить картинку вверх-вниз, как требуется
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.