palehin Опубликовано 18 мая, 2016 Жалоба Поделиться Опубликовано 18 мая, 2016 (изменено) В общем, переделываю сайт после другого прогера и в моей версии симплы выпилины методы get_next_product() и get_prev_product(), прошу помощи. Как я понимаю, эти методы должны находиться в View.php Скиньте код этих методов, если не трудно. Все-таки они не выпилины, как оказалось они расположены в api/Products.php, но почему-то эти методы не срабатывают при вызове в шаблоне product.tpl таким способом {$next_product->url} Из ProductView.php в шаблон выводятся вот так:$this->design->assign('next_product', $this->products->get_next_product($product->id)); Сам метод next_product выглядит во так: public function get_next_product($id) { $this->db->query("SELECT position FROM __products WHERE id=? LIMIT 1", $id); $position = $this->db->result('position'); $this->db->query("SELECT pc.category_id FROM __products_categories pc WHERE product_id=? ORDER BY position LIMIT 1", $id); $category_id = $this->db->result('category_id'); $query = $this->db->placehold("SELECT id FROM __products p, __products_categories pc WHERE pc.product_id=p.id AND p.position>? AND pc.position=(SELECT MIN(pc2.position) FROM __products_categories pc2 WHERE pc.product_id=pc2.product_id) AND pc.category_id=? AND p.visible ORDER BY p.position limit 1", $position, $category_id); $this->db->query($query); return $this->get_product((integer)$this->db->result('id')); } Как выяснилось, у нас на сайте не используются категории товаров. Следовательно запрос: $this->db->query("SELECT pc.category_id FROM __products_categories pc WHERE product_id=? ORDER BY position LIMIT 1", $id); Возвращает 0. Изменено 18 мая, 2016 пользователем palehin Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 18 мая, 2016 Жалоба Поделиться Опубликовано 18 мая, 2016 Пробуйте примерно так: public function get_next_product($id) { $this->db->query("SELECT position FROM __products WHERE id=? LIMIT 1", $id); $position = $this->db->result('position'); $query = $this->db->placehold("SELECT id FROM __products p WHERE p.position>? AND p.visible ORDER BY p.position limit 1", $position); $this->db->query($query); return $this->get_product((integer)$this->db->result('id')); } Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.