godiny1112 Опубликовано: июля 18, 2017 Жалоба Поделиться Опубликовано: июля 18, 2017 (изменено) Всем привет. Помогите пожалуйста. Установил Opencart.CMS 2.3.0.2.3 Включил в каналах продвижения Sitemap. Перехожу на страницу карты сайта https://l-carousel.com.ua/index.php?route=extension/feed/google_sitemap получаю такую ошибку. Скрытый текст Fatal error: Uncaught exception 'Exception' with message 'Error: Column 'name' in order clause is ambiguous<br />Error No: 1052<br />SELECT * FROM oc_manufacturer m LEFT JOIN oc_manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN oc_manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '0' AND md.language_id = '3' ORDER BY name' in /home/lcarouse/l-carousel.com.ua/www/system/library/db/mysqli.php:45 Stack trace: #0 /home/lcarouse/l-carousel.com.ua/www/system/library/db.php(21): DB\MySQLi->query('SELECT * FROM o...', Array) #1 /home/lcarouse/l-carousel.com.ua/www/catalog/model/catalog/manufacturer.php(65): DB->query('SELECT * FROM o...') #2 [internal function]: ModelCatalogManufacturer->getManufacturers() #3 /home/lcarouse/l-carousel.com.ua/www/system/storage/modification/system/engine/loader.php(183): call_user_func_array(Array, Array) #4 [internal function]: Loader->{closure}(Array, Array) #5 /home/lcarouse/l-carousel.com.ua/www/system/engine/proxy.php(3 in /home/lcarouse/l-carousel.com.ua/www/system/library/db/mysqli.php on line 45 throw new \Exception('Error: ' . $this->connection->error . '<br />Error No: ' . $this->connection->errno . '<br />' . $sql); это 45 строчка файла Изменено июля 18, 2017 пользователем RHCk Картинки, логи и код убирайте под спойлер. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: июля 18, 2017 Жалоба Поделиться Опубликовано: июля 18, 2017 значит или модельку оригинал восстановить или в таблице БД не хватает чего-то обратите внимание на catalog/model/catalog/manufacturer.php Какие модули вносят правки туда. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
godiny1112 Опубликовано: июля 18, 2017 Автор Жалоба Поделиться Опубликовано: июля 18, 2017 (изменено) 7 часов назад, BuslikDrev сказал: значит или модельку оригинал восстановить или в таблице БД не хватает чего-то обратите внимание на catalog/model/catalog/manufacturer.php Какие модули вносят правки туда. Скрытый текст <?php // * @copyright OPENCART.PRO 2011 - 2017. // * @forum http://forum.opencart.pro // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt class ModelCatalogManufacturer extends Model { public function getManufacturerLayoutId($manufacturer_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer_to_layout WHERE manufacturer_id = '" . (int)$manufacturer_id . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "'"); if ($query->num_rows) { return $query->row['layout_id']; } else { return 0; } } public function getManufacturer($manufacturer_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); return $query->row; } public function getManufacturers($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "'"; $sort_data = array( 'name', 'sort_order' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $manufacturer_data = $this->cache->get('manufacturer.' . (int)$this->config->get('config_store_id') . '.' . (int)$this->config->get('config_language_id')); if (!$manufacturer_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY name"); $manufacturer_data = $query->rows; $this->cache->set('manufacturer.' . (int)$this->config->get('config_store_id') . '.' . (int)$this->config->get('config_language_id'), $manufacturer_data); } return $manufacturer_data; } } } вроде, всё стандартно. только что попробовал на поддомене. там всё из коробки и таже ошибка + у меня все таблицы производителей пустые Изменено июля 18, 2017 пользователем RHCk Картинки, логи и код убирайте под спойлер! Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: июля 18, 2017 Жалоба Поделиться Опубликовано: июля 18, 2017 8 минут назад, godiny1112 сказал: Скрытый текст <?php // * @copyright OPENCART.PRO 2011 - 2017. // * @forum http://forum.opencart.pro // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt class ModelCatalogManufacturer extends Model { public function getManufacturerLayoutId($manufacturer_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer_to_layout WHERE manufacturer_id = '" . (int)$manufacturer_id . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "'"); if ($query->num_rows) { return $query->row['layout_id']; } else { return 0; } } public function getManufacturer($manufacturer_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); return $query->row; } public function getManufacturers($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "'"; $sort_data = array( 'name', 'sort_order' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $manufacturer_data = $this->cache->get('manufacturer.' . (int)$this->config->get('config_store_id') . '.' . (int)$this->config->get('config_language_id')); if (!$manufacturer_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY name"); $manufacturer_data = $query->rows; $this->cache->set('manufacturer.' . (int)$this->config->get('config_store_id') . '.' . (int)$this->config->get('config_language_id'), $manufacturer_data); } return $manufacturer_data; } } } вроде, всё стандартно. только что попробовал на поддомене. там всё из коробки и таже ошибка + у меня все таблицы производителей пустые Создайте производителя. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
godiny1112 Опубликовано: июля 18, 2017 Автор Жалоба Поделиться Опубликовано: июля 18, 2017 4 минуты назад, BuslikDrev сказал: Создайте производителя. создал, присвоил товару. у товара отображается. а на странице производителя эта же ошибка бд... Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: июля 18, 2017 Жалоба Поделиться Опубликовано: июля 18, 2017 Только что, godiny1112 сказал: создал, присвоил товару. у товара отображается. а на странице производителя эта же ошибка бд... У меня всё нормально. Какие модули ставили? в БД не все таблицы. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
godiny1112 Опубликовано: июля 18, 2017 Автор Жалоба Поделиться Опубликовано: июля 18, 2017 1 минуту назад, BuslikDrev сказал: У меня всё нормально. Какие модули ставили? FIX HTTPS Export/Import Tool (V3.12) for OpenCart 2.x Local copy OCMOD by iSenseLabs и SEO pro. я не знал, что он уже включен в opencart pro и полезло куча ошибок. кое-как удалил его. и с 1с интеграция настраивается через прямое подключение к БД Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
godiny1112 Опубликовано: июля 18, 2017 Автор Жалоба Поделиться Опубликовано: июля 18, 2017 8 минут назад, BuslikDrev сказал: У меня всё нормально. Какие модули ставили? всё же установил из коробки, всё работает. буду восстанавливать бд. спасибо за уделенное время. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: июля 18, 2017 Жалоба Поделиться Опубликовано: июля 18, 2017 3 минуты назад, godiny1112 сказал: всё же установил из коробки, всё работает. буду восстанавливать бд. спасибо за уделенное время. Ещё возможна ошибка из-за не совместимости каких-то модулей или модификаторов, т.к. в опенкарт.про имена производителей не мультиязычные и имя производителя находится в другой таблице, а какой-то модуль мог думать, что имена мультиязычные как на ocstore. Или не хватает таблиц в БД. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.