Привет всем, опять прошу помощи у тех кто разбирается и даст правильные корректировки, или подскажет куда смотреть в данной ситуации. Создал дополнительные поля для производителей, мета, дескрипшин, кей... При конструкции ниже работает как нужно... Но суть в чем, при наполнении магазина производители создаются автоматически исходя из загружаемых товаров, но у менять при заполнении производителя есть ещё обязательное поле "Meta" которое обязательно к заполнению.... Если же поле не заполнено то почему-то я получаю уведомления что данный производитель не найден. Ну и если значения меты заполнено то все работает как нужно и производитель подтягивается. Имею такую конструкцию запроса к БД: PHP: $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) JOIN " . DB_PREFIX . "manufacturer_description md ON (md.manufacturer_id='" . (int)$manufacturer_id . "') AND (md.language_id='" . (int)$this->config->get('config_language_id') . "') WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); А вот оригинальный запрос из версии OC 2.0.3.1 PHP: $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); Как вы заметили разница только вот в этом: PHP: JOIN " . DB_PREFIX . "manufacturer_description md ON (md.manufacturer_id='" . (int)$manufacturer_id . "') AND (md.language_id='" . (int)$this->config->get('config_language_id') . "') Как правильно откорректировать запрос чтобы если значение meta не заполнено то выполнять запрос аналогичный коробочному варианту или может дополнительное условие?...
я бы посоветовал при импорте, добавить условите по типу: if (!isset($data['meta'])) { $data['meta'] = $data['name']; } по задаче с запросами не могу въехать, если можно переформулировать вопрос или уже с завтра пересмотрю...
Извините, старался как можно доступней объяснить. Очень благодарен за ответ уважаемый @Baco, уже разобрался сам, все дело было в LEFT JOIN. При конструкции ниже все работает как нужно и подгружаются мета тайтлы для производителя. PHP: $query = $this->db->query("SELECT *FROM " . DB_PREFIX . "manufacturer mLEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id)LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (md.manufacturer_id='" . (int)$manufacturer_id . "') AND (md.language_id='" . (int)$this->config->get('config_language_id') . "') WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "'AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");