function oe_get_subcategories(&$subcategories_array, $parent_id = 0) { $subcategories_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int) $parent_id . "'"); while ($subcategories = tep_db_fetch_array($subcategories_query)) { $subcategories_array[sizeof($subcategories_array)] = $subcategories['categories_id']; if ($subcategories['categories_id'] != $parent_id) { oe_get_subcategories($subcategories_array, $subcategories['categories_id']); } } }
if (sizeof($search_array) <= 1) { $search_fields = array('p.products_id', 'p.products_price', 'p.products_model', 'pd.products_name'); $product_search = oe_generate_search_SQL($search_array, $search_fields); } else { $search_fields = array('pd.products_name'); $product_search = oe_generate_search_SQL($search_array, $search_fields, 'AND'); } $products_query = tep_db_query("select p.products_id, p.products_price, p.products_model, pd.products_name from " . TABLE_PRODUCTS . " p left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on (p.products_id = pd.products_id) where pd.language_id = '" . $languages_id . "' and (" . $product_search . ") order by pd.products_name"); $not_found = tep_db_num_rows($products_query) ? false : true; } if (!isset($_POST['search'])) { $product_search = " where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '" . $languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id "; $_GET['inc_subcat'] = '1'; if ($_GET['inc_subcat'] == '1') { $subcategories_array = array(); oe_get_subcategories($subcategories_array, $add_product_categories_id); $product_search .= " and p2c.products_id = p.products_id and p2c.products_id = pd.products_id and (p2c.categories_id = '" . (int) $add_product_categories_id . "'"; for ($i = 0, $n = sizeof($subcategories_array); $i < $n; $i++) { $product_search .= " or p2c.categories_id = '" . $subcategories_array[$i] . "'"; } $product_search .= ")"; } else { $product_search .= " and p2c.products_id = p.products_id and p2c.products_id = pd.products_id and pd.language_id = '" . $languages_id . "' and p2c.categories_id = '" . (int) $add_product_categories_id . "'"; } $products_query = tep_db_query("select distinct p.products_id, p.products_price, p.products_model, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_CATEGORIES . " c, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c " . $product_search . " order by pd.products_name"); $not_found = tep_db_num_rows($products_query) ? false : true; } $category_array = array(array('id' => '', 'text' => TEXT_SELECT_CATEGORY), array('id' => '0', 'text' => TEXT_ALL_CATEGORIES)); if ($step > 1 && !$not_found) { $product_array = array(array('id' => 0, 'text' => TEXT_SELECT_PRODUCT)); while ($products = tep_db_fetch_array($products_query)) {