Denzel Posted December 23, 2016 Share Posted December 23, 2016 Hi Forum, I have found the Supportthread for this contrib closed, so I open my own... B) Does anyone use this contrib and has products in multiple categories ? It stores the hidden categories ids in the $hiddencats array. In my shop the products_new.php displays the products as often as they are joined with different categories. The build in sql does the correct thing, but if I hide some (or one) category, the bug appears. My shop is a 2.3 BS Edge one. Here are the querys: if (!empty($hiddencats)) { $listing_sql = "select " . $select_column_list . " p.products_id, SUBSTRING_INDEX(pd.products_description, ' ', 20) as products_description, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = pd.products_id and p.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and (not (p2c.categories_id in (" . implode(',', $hiddencats) . ")))"; } else { $listing_sql = "select " . $select_column_list . " p.products_id, SUBSTRING_INDEX(pd.products_description, ' ', 20) as products_description, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'"; } This is the buggy for better view: select p.products_image, pd.products_name, p.products_id, SUBSTRING_INDEX(pd.products_description, ' ', 20) as products_description, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products_to_categories p2c, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = pd.products_id and p.products_id = p2c.products_id and pd.language_id = '2' and (not (p2c.categories_id in (48,48))) order by p.products_id DESC limit 0, 20 Maybe there is a SQL-Crack here, who can help me... :D SEE YA Denzel. Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted December 23, 2016 Share Posted December 23, 2016 Hello Denzel @@Denzel, for me it would sound more familiar at the end like this: pd.language_id = '" . (int)$languages_id . "' and (p2c.categories_id not in (" . implode(',', $hiddencats) . "))"; } else { pd.language_id = '2' and (p2c.categories_id not in (48,48)) order by p.products_id DESC limit 0, 20 but I may be wrong. Merry Christmas Rainer Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
Denzel Posted December 24, 2016 Author Share Posted December 24, 2016 Hi @@raiwa ! Of course you are right. The above is the source code, the below the debug output... B) SEE YA Denzel. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.