PDA

View Full Version : osCommerce 1054 - Unknown column 'p.products_id' in 'on clause'エラー


ryotatu
2007/09/08, 03:55 PM
PHP v5.1.6
MySql v5.1.11
↑の環境でOsCommerceを使用しています。

xxx.xxx.xxx.xxx/catalog/default.php?cPath=x_x(xは任意の数字や文字)
を開くと次のメッセージが出力され正常に出力することができません。

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

select count(*) 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 = '29'
----------------------------

同様の現象が出た方などいらっしゃいましたら、
回避方法について教えていただけないでしょうか。

http://www.koshoten.net/k2/modules/newbb/viewtopic.php?post_id=323&topic_id=43&forum=3

googleなどから↑を参考にして調べたりしたのですが、
そもそもインストールの時点で、
"catalog/includes/modules"に"recommendation.php"ファイルもありません。
また、他の情報も有益になるものが見つかりませんでした。

もし、回避方法を知っている方がいらっしゃいましたらご教示ください。
以上、宜しくお願いします。

ryotatu
2007/09/08, 10:04 PM
とりあえず、自己解決しました。
/catalog/default.phpの下記を変更して解決しました。
MySql5.*用に「()」を付けました。

// We show them all(2つ箇所があり、2つめの箇所)

as final_price 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

as final_price 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)

しかしながら、「メーカ」選択、「商品検索」を実行すると、まだ同じエラーが出てきます。

どの*.phpのどの箇所に「()」をつければよいか知っている方がいらっしゃいましたら教えてください。

ryotatu
2007/09/11, 01:33 AM
すみません。
解決できました。
確認が足りませんでした。

http://www.oscommerce.com/community/contributions,4654
を参考に直りました。

右アイコンよりファイルをダウンロードします。

次の2つのPHPをファイルのとおり修正します。

・index.phpは、default.phpのことです。
・advanced_search_result.php

MySqlのバージョンが5.xの方でOsCommerceを使用している方は必ず出るエラーですので、
参考になればと思います。