Results 1 to 2 of 2

Hybrid View

  1. #1
    Join Date
    Mar 2010
    Posts
    251
    Plugin Contributions
    0

    Default Product Filter Module - 1109:Unknown table 'p' in field list

    Hi,

    I have installed the Product Filter Module and am now receiving the following error in debug
    Code:
    PHP Fatal error:  1109:Unknown table 'p' in field list :: select count(p.products_id) as total  in /*****/*****/*****/includes/classes/db/mysql/query_factory.php on line 101
    .

    I suspect it has something to do with this code...

    PHP Code:
    <?php
    /**
     * default_filter.php  for index filters
     *
     * index filter for the default product type
     * show the products of a specified manufacturer
     *
     * @package productTypes
     * @copyright Copyright 2003-2007 Zen Cart Development Team
     * @copyright Portions Copyright 2003 osCommerce
     * @todo Need to add/fine-tune ability to override or insert entry-points on a per-product-type basis
     * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
     * @version $Id: default_filter.php 6912 2007-09-02 02:23:45Z drbyte $
     */
    if (!defined('IS_ADMIN_FLAG')) {
      die(
    'Illegal Access');
    }
      if (isset(
    $_GET['alpha_filter_id']) && (int)$_GET['alpha_filter_id'] > 0) {
        
    //$alpha_sort = " and pd.products_name LIKE '" . chr((int)$_GET['alpha_filter_id']) . "%' ";
        
    $filterid = (int)$_GET['alpha_filter_id'];
        switch(
    $filterid)
        {
                case 
    1:
                    
    $alpha_sort " order by pd.products_viewed";
                    break;
                case 
    2:
                    
    $alpha_sort " order by p.products_price";
                    break;
                case 
    3:
                    
    $alpha_sort " order by p.products_price DESC";
                    break;
                case 
    4:
                    
    $alpha_sort " order by pd.products_name";
                    break;
                case 
    5:
                    
    $alpha_sort " order by m.manufacturers_name";
                    break;
                case 
    6:
                    
    $alpha_sort " order by p.products_date_added DESC";
                    break;
                case 
    7:
                    
    $alpha_sort " order by p.products_date_added";
                    break;
                    
                    
                
            
        }
      } else {
        
    $alpha_sort '';
      }
      if (!isset(
    $select_column_list)) $select_column_list "";
       
    // show the products of a specified manufacturer
      
    if (isset($_GET['manufacturers_id']) && $_GET['manufacturers_id'] != '' ) {
        if (isset(
    $_GET['filter_id']) && zen_not_null($_GET['filter_id'])) {
    // We are asked to show only a specific category
          
    $listing_sql "select " $select_column_list " p.products_id, p.products_type, p.master_categories_id, p.manufacturers_id, m.manufacturers_name,  p.products_price, p.products_tax_class_id, pd.products_description, if(s.status = 1, s.specials_new_products_price, NULL) AS specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status
           from " 
    TABLE_PRODUCTS " p left join " TABLE_SPECIALS " s on p.products_id = s.products_id , " .
           
    TABLE_PRODUCTS_DESCRIPTION " pd, " .
           
    TABLE_MANUFACTURERS " m, " .
           
    TABLE_PRODUCTS_TO_CATEGORIES " p2c
           where p.products_status = 1
             and p.manufacturers_id = m.manufacturers_id
             and m.manufacturers_id = '" 
    . (int)$_GET['manufacturers_id'] . "'
             and p.products_id = p2c.products_id
             and pd.products_id = p2c.products_id
             and pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
             and p2c.categories_id = '" 
    . (int)$_GET['filter_id'] . "'" .
             
    $alpha_sort;
        } else {
    // We show them all
          
    $listing_sql "select " $select_column_list " p.products_id, p.products_type, p.master_categories_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, pd.products_description, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status
          from " 
    TABLE_PRODUCTS " p left join " TABLE_SPECIALS " s on p.products_id = s.products_id, " .
          
    TABLE_PRODUCTS_DESCRIPTION " pd, " .
          
    TABLE_MANUFACTURERS " m
          where p.products_status = 1
            and pd.products_id = p.products_id
            and pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
            and p.manufacturers_id = m.manufacturers_id
            and m.manufacturers_id = '" 
    . (int)$_GET['manufacturers_id'] . "'" .
            
    $alpha_sort;
        }
      } else {
    // show the products in a given category
        
    if (isset($_GET['filter_id']) && zen_not_null($_GET['filter_id'])) {
    // We are asked to show only specific category
          
    $listing_sql "select " $select_column_list " p.products_id, p.products_type, p.master_categories_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, pd.products_description, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status
          from " 
    TABLE_PRODUCTS " p left join " TABLE_SPECIALS " s on p.products_id = s.products_id, " .
          
    TABLE_PRODUCTS_DESCRIPTION " pd, " .
          
    TABLE_MANUFACTURERS " m, " .
          
    TABLE_PRODUCTS_TO_CATEGORIES " p2c
          where p.products_status = 1
            and p.manufacturers_id = m.manufacturers_id
            and m.manufacturers_id = '" 
    . (int)$_GET['filter_id'] . "'
            and p.products_id = p2c.products_id
            and pd.products_id = p2c.products_id
            and pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
            and p2c.categories_id = '" 
    . (int)$current_category_id "'" .
            
    $alpha_sort;
        } else {
    // We show them all
          
    $listing_sql "select " $select_column_list " p.products_id, p.products_type, p.master_categories_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, pd.products_description, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status =1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status
           from " 
    TABLE_PRODUCTS_DESCRIPTION " pd, " .
           
    TABLE_PRODUCTS " p left join " TABLE_MANUFACTURERS " m on p.manufacturers_id = m.manufacturers_id, " .
           
    TABLE_PRODUCTS_TO_CATEGORIES " p2c left join " TABLE_SPECIALS " s on p2c.products_id = s.products_id
           where p.products_status = 1
             and p.products_id = p2c.products_id
             and pd.products_id = p2c.products_id
             and pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
             and p2c.categories_id = '" 
    . (int)$current_category_id "'" .
             
    $alpha_sort;
        }
      }

    // set the default sort order setting from the Admin when not defined by customer
      
    if (!isset($_GET['sort']) and PRODUCT_LISTING_DEFAULT_SORT_ORDER != '') {
        
    $_GET['sort'] = PRODUCT_LISTING_DEFAULT_SORT_ORDER;
      }

      if (isset(
    $column_list)) {
        if ((!isset(
    $_GET['sort'])) || (isset($_GET['sort']) && !ereg('[1-8][ad]'$_GET['sort'])) || (substr($_GET['sort'], 01) > sizeof($column_list)) ) {
          for (
    $i=0$n=sizeof($column_list); $i<$n$i++) {
            if (isset(
    $column_list[$i]) && $column_list[$i] == 'PRODUCT_LIST_NAME') {
              
    $_GET['sort'] = $i+'a';
              
    //$listing_sql .= " order by p.products_sort_order, pd.products_name";
              
    break;
            } else {
    // sort by products_sort_order when PRODUCT_LISTING_DEFAULT_SORT_ORDER is left blank
    // for reverse, descending order use:
    //       $listing_sql .= " order by p.products_sort_order desc, pd.products_name";
              //$listing_sql .= " order by p.products_sort_order, pd.products_name";
              
    break;
            }
          }
    // if set to nothing use products_sort_order and PRODUCTS_LIST_NAME is off
          
    if (PRODUCT_LISTING_DEFAULT_SORT_ORDER == '') {
            
    $_GET['sort'] = '20a';
          }
        } else {
          
    $sort_col substr($_GET['sort'], 1);
          
    $sort_order substr($_GET['sort'], 1);
          
    $listing_sql .= ' order by ';
          switch (
    $column_list[$sort_col-1]) {
            case 
    'PRODUCT_LIST_MODEL':
              
    //$listing_sql .= "p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
              
    break;
            case 
    'PRODUCT_LIST_NAME':
              
    //$listing_sql .= "pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
              
    break;
            case 
    'PRODUCT_LIST_MANUFACTURER':
              
    //$listing_sql .= "m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
              
    break;
            case 
    'PRODUCT_LIST_QUANTITY':
              
    //$listing_sql .= "p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
              
    break;
            case 
    'PRODUCT_LIST_IMAGE':
              
    //$listing_sql .= "pd.products_name";
              
    break;
            case 
    'PRODUCT_LIST_WEIGHT':
              
    //$listing_sql .= "p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
              
    break;
            case 
    'PRODUCT_LIST_PRICE':
    //          $listing_sql .= "final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
              //$listing_sql .= "p.products_price_sorter " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
              
    break;
          }
        }
      }
    // optional Product List Filter
      
    if (PRODUCT_LIST_FILTER 0) {
        if (isset(
    $_GET['manufacturers_id']) && $_GET['manufacturers_id'] != '') {
          
    $filterlist_sql "select distinct c.categories_id as id, cd.categories_name as name
          from " 
    TABLE_PRODUCTS " p, " .
          
    TABLE_PRODUCTS_TO_CATEGORIES " p2c, " .
          
    TABLE_CATEGORIES " c, " .
          
    TABLE_CATEGORIES_DESCRIPTION " cd
          where p.products_status = 1
            and p.products_id = p2c.products_id
            and p2c.categories_id = c.categories_id
            and p2c.categories_id = cd.categories_id
            and cd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
            and p.manufacturers_id = '" 
    . (int)$_GET['manufacturers_id'] . "'
          order by cd.categories_name"
    ;
        } else {
          
    $filterlist_sql"select distinct m.manufacturers_id as id, m.manufacturers_name as name
          from " 
    TABLE_PRODUCTS " p, " .
          
    TABLE_PRODUCTS_TO_CATEGORIES " p2c, " .
          
    TABLE_MANUFACTURERS " m
          where p.products_status = 1
            and p.manufacturers_id = m.manufacturers_id
            and p.products_id = p2c.products_id
            and p2c.categories_id = '" 
    . (int)$current_category_id "'
          order by m.manufacturers_name"
    ;
        }
        
    $do_filter_list false;
        
    $filterlist $db->Execute($filterlist_sql);
        if (
    $filterlist->RecordCount() > 1) {
            
    $do_filter_list true;
          if (isset(
    $_GET['manufacturers_id'])) {
            
    $getoption_set =  true;
            
    $get_option_variable 'manufacturers_id';
            
    $options = array(array('id' => '''text' => TEXT_ALL_CATEGORIES));
          } else {
            
    $options = array(array('id' => '''text' => TEXT_ALL_MANUFACTURERS));
          }
          while (!
    $filterlist->EOF) {
            
    $options[] = array('id' => $filterlist->fields['id'], 'text' => $filterlist->fields['name']);
            
    $filterlist->MoveNext();
          }
        }
      }

    // Get the right image for the top-right
      
    $image DIR_WS_TEMPLATE_IMAGES 'table_background_list.gif';
      if (isset(
    $_GET['manufacturers_id'])) {
        
    $sql "select manufacturers_image
                  from   " 
    TABLE_MANUFACTURERS "
                  where      manufacturers_id = '" 
    . (int)$_GET['manufacturers_id'] . "'";

        
    $image_name $db->Execute($sql);
        
    $image $image_name->fields['manufacturers_image'];

      } elseif (
    $current_category_id) {

        
    $sql "select categories_image from " TABLE_CATEGORIES "
                where  categories_id = '" 
    . (int)$current_category_id "'";

        
    $image_name $db->Execute($sql);
        
    $image $image_name->fields['categories_image'];
      }
    ?>
    I am using Zencart V1.50 - Can anyone offer a solution?
    Last edited by moesoap; 28 May 2012 at 10:36 AM.

  2. #2
    Join Date
    Jan 2007
    Location
    Australia
    Posts
    6,167
    Plugin Contributions
    7

    Default Re: Product Filter Module - 1109:Unknown table 'p' in field list

    Quote Originally Posted by moesoap View Post
    I have installed the Product Filter Module and am now receiving the following error in debug
    Code:
    PHP Fatal error:  1109:Unknown table 'p' in field list :: select count(p.products_id) as total  in /*****/*****/*****/includes/classes/db/mysql/query_factory.php on line 101
    .

    I suspect it has something to do with this code...

    PHP Code:
    <?php
    /**
     * default_filter.php  for index filters
    I am using Zencart V1.50 - Can anyone offer a solution?
    Not really a solution, but code that you posted doesn't have a "select count" command, therefore the error isn't caused by this code.

    I'm not familiar with this module, but I suspect that if it is a replacement for the default filter code you'll probably find a file of the same name in your CUSTOM folder, so that is where you'll need to look.

    The "p.xxxxxx" tables only exist in memory, so you won't find them in the database.

    Cheers
    Rod

 

 

Similar Threads

  1. v154 PHP Fatal error: 1109: Unknown table 'p' in field list
    By bobc in forum General Questions
    Replies: 24
    Last Post: 20 Jan 2017, 06:06 PM
  2. v154 What does this mean? 1109:Unknown table 'p' in field list
    By robbin21973 in forum General Questions
    Replies: 13
    Last Post: 18 Sep 2015, 07:00 AM
  3. v139h 1109 Unknown table 'p' in field list
    By Dexter71 in forum General Questions
    Replies: 2
    Last Post: 12 Sep 2013, 07:11 PM
  4. Replies: 2
    Last Post: 20 Dec 2012, 07:31 PM
  5. Links manager error 1109 Unknown table 'p' in field list
    By ctcentralinfo in forum General Questions
    Replies: 7
    Last Post: 27 Sep 2006, 10:10 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg