VladSiy

Нужна помощь в написании SQL запроса для вывода определенных товаров

Рекомендуемые сообщения

VladSiy    0

Здравствуйте. 
Мог бы кто-нибудь мне помочь написать правильный запрос для выбора нужных товаров? 
 
Введение:
- В магазине есть артикулы товара, я использую поле "model"
- Есть артикул замены, использую поле "sku"
 
Артикул замены - это артикул аналогичного товара. (поля заполняются вручную в админке)

Пример:
Товар №1
Артикул - xxxxxx
Артикул замены - yyyyyy
 
Товар №2
Артикул - yyyyyy
Артикул замены - xxxxxx
 
Артикулов замены на одном товаре может быть до 3-х штук.
 
Что я сделал:
в контроллере продукта ...
 

$this->data['productsArtZam'] = array();
		
$results = $this->model_catalog_product->getProductArtZam($this->request->get['product_id'],$this->data['sku'], $this->data['model']);
	
	foreach ($results as $result) {		
		$skus = explode(',', $result['model']);
			
		foreach ($skus as $sku) {
			$this->data['productsArtZam'][] = array(
				'sku'     	 => trim($sku),
				'href'    	 => $this->url->link('product/product', 'product_id=' . $result['product_id'])
			);			
		}
	}

В модели продукта ...

public function getProductArtZam($product_id, $sku, $model) {

$query = $this->db->query("SELECT DISTINCT * FROM " 
. DB_PREFIX . "product p LEFT JOIN " 
. DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)
		WHERE (sku LIKE '%" . $model . "%' AND quantity > 0 AND status = '1' ) LIMIT 1,6 ");

}

в tpl продукта вывожу артикул тех продуктов, которые соответствуют запросу.

 

У меня это работает так:

я заполняю поле артикул(model) и, через запятую, Артикул замены (sku). Разбиваю строку на массив, сравниваю и вывожу.

Чтобы эти арт. зам. выводились нужно в обоих товарах их прописать

 

Кажется, что все у меня получается, я получаю нужные товары, до 3-х шт. с активными, правильными ссылками.

 

НО

 

из-за LIKE %...% у меня все не получается. Есть два разных товара с разными артикулами: артикул ART-38 и ART-3. Артикул замены применяется и к ART-38 и ART-3, а должен только к первому.

 

Вместо LIKE делаю "=" все работает, как надо, но не выводится больше 1-го артикула замены, т.е. если в ...

 

Товар №2
Артикул - yyyyyy
Артикул замены - xxxxxx, zzzzzz

 

... то запрос, как бы не устраивает. 

 

Могли бы помочь решить эту проблемку? :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От astatium135
      Добрый день!
      Я пишу сайт книжного интернет-магазина, и у меня возникла проблема. Мне нужно реализовать параметры Издательство, Автор и Серия, с функционалом, аналогичным связи Производитель (вывод списка, поиск по параметру и т.д.).
      Подскажите, пожалуйста, самый правильный способ это осуществить, внося минимум костылей. В opencart разбираюсь слабо (смутно представляю, где что искать на уровне контроллер-модель-представление, но ничерта не понимаю в "потрохах" opencart'a), php и mysql знаю хорошо.
    • От yonen
      Здравствуйте,
       
      как решить проблему невозможности изменения связей товара после копирования. При создании товара с нуля все работает нормально. При копировании одна связь остается и не меняется при пересохранении карточки товара даже при выборе других. Может быть кто-то сталкивался с этим?
       
      Версия ocStore 2.1.0.2.1
       
      Заранее спасибо
    • От calibr
      Не изменяется категория в которой нужно отображать товар. При изменении категории он всегда остается в той в которой был отмечен первый раз и в новой категории. Если потом убираю его из новой то убирается. Подскажите как исправить плз.
    • От Kodio
      Здравствуйте,
      1) Если ли решение чтобы Рекомендуемые товары (Товар-Связи-Рекомендуемые товары) на странице товара вывести слайдером?
      2) Или как ограничить вывод только 4 товаров.
      3) Или как отключить автоматическое заполнение рекомендуемых товаров, когда, если добавить связь к одному товару, то в добавленном тоже эта связь отобразиться.
    • От trussss
      Добрый день,
      Возник вопрос, но прежде опишу суть и проблему.
       
      Чтобы добавленный товар отображался в магазине нужно ему сказать в каком магазине он будет виден для этого идем в  "Каталог--Товары---Связи---Магазины (чекбокс - основной магазин, ставим и товар виден в выбранном магазине, удобно если есть несколько магазинов, но что  если один?)",
       
      Проблема в том, что при импорте товаров например через модуль "CSV Price Pro import/export" этот чек-бокс не ставится.
       
      Вопрос - в каком месте находится этот чек-бокс, может в Базе данных где есть, или в коде должен быть, подскажите где искать? хочу сделать так, чтобы оно всегда выбирало этот чек-бокс.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу