Здравствуйте ребята!
Не могу понять где ошибка, нехватает знаний, вроде все ОК но не совсем.
Запрос вытаскивает с базы информацию по бренду, а именно категории в которых присутствует этот бренд.
Проблема в том, что если бренд пустой, без товаров, выдает ошибку
Fatal error: Uncaught Exception: Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cd ON (cd.category_id = ptc.category_id) LEFT JOIN oc_category c ON (c.cate' at line 1
Error No: 1064
SELECT ptc.category_id, cd.name, c.oct_image FROM oc_product_to_category ptcoc_category_description cd ON (cd.category_id = ptc.category_id) LEFT JOIN oc_category c ON (c.category_id = ptc.category_id) WHERE ptc.product_id IN () AND cd.language_id = '1' GROUP BY ptc.category_id
Но если товары есть, все отлично работает.
Вот сам код с manufacturer.php
public function getManufacturerCategory($manufacturer_id, $product_ids){
$query = $this->db->query("SELECT ptc.category_id, cd.name, c.oct_image FROM " . DB_PREFIX . "product_to_category ptc LEFT JOIN " . DB_PREFIX . "category_description cd ON (cd.category_id = ptc.category_id) LEFT JOIN " . DB_PREFIX . "category c ON (c.category_id = ptc.category_id) WHERE ptc.product_id IN (" . $product_ids . ") AND cd.language_id = '" . (int)$this->config->get('config_language_id')."' GROUP BY ptc.category_id");
$seo_url_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "seo_url WHERE query = 'manufacturer_id=" . (int)$manufacturer_id . "'");
$seo_url = $seo_url_query->row['keyword'];
foreach($query->rows as $key=> $item){
$data[$key]['category_id'] = $item['category_id'];
$data[$key]['name'] = $item['name'];
$data[$key]['link'] = $this->url->link('product/category', 'path=' . $item['category_id']). $seo_url.'/';
$data[$key]['image'] = $this->model_tool_image->resize($item['oct_image'], 100, 100);
}
return $data;
}
Если . $product_ids . заключить в дополнительные одинарные скобки, то ошибки в пустом бренде не будет, но в том бренде где много товаров, выведиться только одна категория а не все... Второй день ищу как исправить и все никак...
Заранее большое спасибо за помощь!