Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


VladSiy

Recommended Posts

Здравствуйте. 
Мог бы кто-нибудь мне помочь написать правильный запрос для выбора нужных товаров? 
 
Введение:
- В магазине есть артикулы товара, я использую поле "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

 

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

 

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

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.