Jump to content
  • 0

Wyszukiwanie po rozmiarze oraz domyślne wartości


mefimess

Question

Witam serdecznie ! Moich problemów z prestą ciąg dalszy... Do rzeczy.

 

1) Chciałbym wprowadzić w wyszukiwarce możliwość wyszukwiania produktów TYLKO po wysokości przedmiotu (dane z tabeli ps_feature_value_lang) lub po nazwie lub po tym i po tym. W panelu admina dodaję sobie dane na temat wysokości produktu. Modyfikuję zapytanie z klasy Search, kombinuję i nic. Póki co chcę zrobić tak, żeby działało tylko dla wysokości. Mam radio button którym przesyłam sobie dane na temat tej wysokości (to działa). Oto moje wypociny:

$sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, 
				pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`name`,
			 MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` manufacturer_name '.$score.', MAX(product_attribute_shop.`id_product_attribute`) id_product_attribute,
				DATEDIFF(
					p.`date_add`,
					DATE_SUB(
						NOW(),
						INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY
					)
				) > 0 new
				FROM '._DB_PREFIX_.'product p
				'.Shop::addSqlAssociation('product', 'p').'
				INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (
					p.`id_product` = pl.`id_product`
					AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').'
				)
				INNER JOIN `'._DB_PREFIX_.'feature_product` fvp ON (
					p.`id_product` = fvp.`id_product`
				)
				INNER JOIN `'._DB_PREFIX_.'feature_value_lang` fvl ON (
					fvl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').'
					AND fvl.`id_feature_value` = fvp.`id_feature_value`
				)
				LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa	ON (p.`id_product` = pa.`id_product`)
				'.Shop::addSqlAssociation('product_attribute', 'pa', false, 'product_attribute_shop.`default_on` = 1').'
				'.Product::sqlStock('p', 'product_attribute_shop', false, $context->shop).'
				LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
				LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product`)'.
				Shop::addSqlAssociation('image', 'i', false, 'image_shop.cover=1').'
				LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
				WHERE fvl.`value` = "'.$height.'"
				GROUP BY product_shop.id_product
				'.($order_by ? 'ORDER BY  '.$alias.$order_by : '').($order_way ? ' '.$order_way : '').'
				LIMIT '.(int)(($page_number - 1) * $page_size).','.(int)$page_size;
		$result = $db->executeS($sql);

Dodałem dwa inner joiny dla dwóch tabel przechowujących te wartości oraz jeden warunek w klauzuli WHERE. Jednak mi to nie śmiga, cały czas chce szukać po nazwie produktu. Kombinacji tego kodu było mnóstwo, ale wrzucam najbardziej, moim zdaniem, sensowny. Co powinienem zmienić?

2) Dodaję sobie w panelu administratora sporo modułów i możliwości dostowowanych pode mnie. Gdzie znajdę pomoc na temat tego, jak przy generowaniu formularza wczytać wartości z bazy danych ? Jakieś dane z tabel, które są updateowane, tak jak jest to w przypadku choćby produktu, który mogę edytować.

 

 

Z góry dziękuję za pomoc, pozdrawiam !

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...