PDA


Tüm Versiyonu Göster : 1054 - Unknown Column 'p.products_id' In 'on Clause' Hatası Çözümü


KraL
03-01-2007, 03:12
Evet arkadaşlar oscommerce kurdunuz ve aşşağıdaki hata ile bir anda karşılaştınız:D

1054 - Unknown column 'p.products_id' in 'on clause'

select count(p.products_id) as total from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.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 = '4' and p2c.categories_id = '8'

[TEP STOP]


Bu hatanın çözümünü anlatmadan önce neden böyle bir hatayla karşılaştığınızı belirteyim.Bu hatanın ortaya çıkması seçtiğiniz TM temasının database ile uyumsuzluğundan kaynaklanıyor.Her neyse çözümüne gelelim:D

1- ana dizindeki index.php dosyasını açın ( değişiklik yapmadan önce index.php yedegini alın)

p.products_id = s.products_id

yazan bütün yerleri bulun ve hepsini

p2c.products_id = s.products_id

ile değiştirin ,

2- yine index.php icindeki

// We show them all
$listing_sql = "select " . $select_column_list . " p.products_id, 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 . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";

bölümünü altakiyle değiştirin

// We show them all
$listing_sql = "select " . $select_column_list . " p.products_id, 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_MANUFACTURERS . " m, " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";

3- son olarak arama kısmındaki hatayi gidermek içinde

advanced_search_results.php dosyasini açıp editliyeceksiniz

Bu kısmı bulup

$from_str = "from " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m using(manufacturers_id), " . TABLE_PRODUCTS_DESCRIPTION . " pd left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_CATEGORIES . " c, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c";

alttakiyle değiştirin...

$from_str = "from ((" . TABLE_PRODUCTS . " p) left join " . TABLE_MANUFACTURERS . " m using(manufacturers_id), " . TABLE_PRODUCTS_DESCRIPTION . " pd) left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_CATEGORIES . " c, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c";

Umarım sorununuz çözülmüştür...;)

yavuzyayla
07-12-2007, 08:14
kardeş çook makbule geçti hiç ümidim yoktu ama birden ultravb. cıktı karşıma :grin:

paylaştığın için teşekkür ederim sağol