OSCOMMERCE SUPPORT CALL 702-453-3332

 

Help - Search - Members - Calendar
Full Version: How to make this code search for more then 1 category?
osCommerce Community Support Forums > osCommerce Online Merchant v2.x > General Support
IVUM
I've got a box like the new products box, it lists products within a category or sub category, I control this by putting the category id in the code.
If I have got 1 category and 2 sub categories and I tell it to list the products from the category it does NOT list the products from the sub categories so I have to then which out of the 3 has the most valued products to show my customers.

Take a look at the following code:
CODE
    $new_products_query = tep_db_query(
        "select p.products_id, p.products_image, p.products_tax_class_id, " .
            "if(s.status, s.specials_new_products_price, p.products_price) as products_price " .
        "from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id " .
        ", ". TABLE_PRODUCTS_TO_CATEGORIES . " p2c " .
        "where p.products_id = p2c.products_id and products_status = '1' and p2c.categories_id = 40 " .
        "order by rand() limit " . MAX_DISPLAY_NEW_PRODUCTS);


The second from last line you will see the number 40, if I change this to say 1 or 2 or 8 etc it will show products from that category/sub category. How would I go about adding more then the 1 number so it looks for in a few categories and lists the products from each one?
OR
Better yet make the code so it lists the products in each sub category when I tell it to look in the main category. (would also like it to list products in sub sub categories)

Full code from the file is below:
CODE
<?php
/*
  $Id: new_products.php,v 1.34 2003/06/09 22:49:58 hpdl Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/
?>
<!-- Comming Soon Start //-->
<?php
  $info_box_contents = array();
  $info_box_contents[] = array('text' => sprintf(TABLE_HEADING_CATEGORY_ONE, strftime('%B')));

  new contentBoxHeading($info_box_contents);

if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {

    $new_products_query = tep_db_query(
        "select p.products_id, p.products_image, p.products_tax_class_id, " .
            "if(s.status, s.specials_new_products_price, p.products_price) as products_price " .
        "from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id " .
        ", ". TABLE_PRODUCTS_TO_CATEGORIES . " p2c " .
        "where p.products_id = p2c.products_id and products_status = '1' and p2c.categories_id = 1 " .
        "order by rand() limit " . MAX_DISPLAY_NEW_PRODUCTS);
  } else {
    $new_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . (int)$new_products_category_id . "' and p.products_status = '1' order by rand() limit " . MAX_DISPLAY_NEW_PRODUCTS);
  }
  
  $row = 0;
  $col = 0;
  $info_box_contents = array();
  while ($new_products = tep_db_fetch_array($new_products_query)) {
    $new_products['products_name'] = tep_get_products_name($new_products['products_id']);
    $info_box_contents[$row][$col] = array('align' => 'center',
                                           'params' => 'class="smallText" width="33%" valign="top"',
                                           'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . $new_products['products_name'] . '</a><br>' . $currencies->display_price($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])));

    $col ++;
    if ($col > 2) {
      $col = 0;
      $row ++;
    }
  }

  new contentBox($info_box_contents);
?>
<!-- new_products_eof //-->
IVUM
Can someone please help me out on this one?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.