バージョン選択

フォーラム

メニュー

オンライン状況

70 人のユーザが現在オンラインです。 (50 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 69
uk88nepro もっと...

サイト内検索

バグ報告 > 管理機能 > 受注管理>新規受注入力>商品の追加 カテゴリでの検索がエラー

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
wamu
投稿日時: 2010/2/23 11:10
対応状況: −−−
新米
登録日: 2010/2/23
居住地:
投稿: 1
受注管理>新規受注入力>商品の追加 カテゴリでの検索がエラー
お世話になります。php、Mysqlに関する知識は少し持っていますが、デザイン以外のカスタマイズは行っていますせん。
サーバーはアイルのInfinitoPLUSになります。

[EC-CUBE] 2.4.1
[OS] Windows NT WEB10 5.2 build 3790
[PHP] 5.2.9-2
[データベース] MySQL 4.1.22-Max
[WEBサーバ] Microsoft-IIS/6.0
[ブラウザ] 全て
[現象]
管理画面での挙動です。
受注管理>新規受注入力>商品の追加
開かれたウィンドでカテゴリを指定して検索を行うとシステム管理者に問い合わせろというエラーが出ます。
デバッグモードで動かすと以下のエラーが確認できました。
カテゴリーを選らなければ、商品リストが現れエントリーできます。

おわかりになる方がいらしたら、ご教授いただきたくよろしくお願い申し上げます。

http://example.com/admin/order/product_select.php

SERVER_ADDR:
REMOTE_ADDR:*.*.*.*
USER_AGENT:Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; ja-JP-mac; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8

SELECT DISTINCT T1.product_id, product_code_min, product_code_max, price01_min, price01_max, price02_min, price02_max, stock_min, stock_max, stock_unlimited_min, stock_unlimited_max, del_flg, status, name, comment1, comment2, comment3, main_list_comment, main_image, main_list_image, product_flag, deliv_date_id, sale_limit, point_rate, sale_unlimited, create_date, deliv_fee, T4.product_rank, T4.category_rank FROM (SELECT T2.product_id ,T1.product_code_min ,T1.product_code_max ,T1.price01_min ,T1.price01_max ,T1.price02_min ,T1.price02_max ,T1.stock_min ,T1.stock_max ,T1.stock_unlimited_min ,T1.stock_unlimited_max ,T2.del_flg ,T2.status ,T2.name ,T2.comment1 ,T2.comment2 ,T2.comment3 ,T2.main_list_comment ,T2.main_image ,T2.main_list_image ,T2.product_flag ,T2.deliv_date_id ,T2.sale_limit ,T2.point_rate ,T2.sale_unlimited ,T2.create_date ,T2.deliv_fee ,T3.rank ,T4.rank AS category_rank ,T4.category_id FROM ( (dtb_products AS T2 RIGHT JOIN (SELECT product_id AS product_id_sub ,MIN(product_code) AS product_code_min ,MAX(product_code) AS product_code_max ,MIN(price01) AS price01_min ,MAX(price01) AS price01_max ,MIN(price02) AS price02_min ,MAX(price02) AS price02_max ,MIN(stock) AS stock_min ,MAX(stock) AS stock_max ,MIN(stock_unlimited) AS stock_unlimited_min ,MAX(stock_unlimited) AS stock_unlimited_max FROM dtb_products_class GROUP BY product_id ) AS T1 ON T1.product_id_sub = T2.product_id ) LEFT JOIN dtb_product_categories AS T3 ON T2.product_id = T3.product_id ) LEFT JOIN dtb_category AS T4 ON T3.category_id = T4.category_id ) AS T1 JOIN ( SELECT max(T3.rank) AS category_rank, max(T2.rank) AS product_rank, T2.product_id FROM dtb_product_categories T2 JOIN dtb_category T3 USING (category_id) GROUP BY product_id) AS T4 USING (product_id) WHERE del_flg = 0 AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE category_id IN ( ? ) ) ORDER BY T4.category_rank DESC, T4.product_rank DESC
DB Error: unknown error

SELECT DISTINCT T1.product_id, product_code_min, product_code_max, price01_min, price01_max, price02_min, price02_max, stock_min, stock_max, stock_unlimited_min, stock_unlimited_max, del_flg, status, name, comment1, comment2, comment3, main_list_comment, main_image, main_list_image, product_flag, deliv_date_id, sale_limit, point_rate, sale_unlimited, create_date, deliv_fee, T4.product_rank, T4.category_rank FROM (SELECT T2.product_id ,T1.product_code_min ,T1.product_code_max ,T1.price01_min ,T1.price01_max ,T1.price02_min ,T1.price02_max ,T1.stock_min ,T1.stock_max ,T1.stock_unlimited_min ,T1.stock_unlimited_max ,T2.del_flg ,T2.status ,T2.name ,T2.comment1 ,T2.comment2 ,T2.comment3 ,T2.main_list_comment ,T2.main_image ,T2.main_list_image ,T2.product_flag ,T2.deliv_date_id ,T2.sale_limit ,T2.point_rate ,T2.sale_unlimited ,T2.create_date ,T2.deliv_fee ,T3.rank ,T4.rank AS category_rank ,T4.category_id FROM ( (dtb_products AS T2 RIGHT JOIN (SELECT product_id AS product_id_sub ,MIN(product_code) AS product_code_min ,MAX(product_code) AS product_code_max ,MIN(price01) AS price01_min ,MAX(price01) AS price01_max ,MIN(price02) AS price02_min ,MAX(price02) AS price02_max ,MIN(stock) AS stock_min ,MAX(stock) AS stock_max ,MIN(stock_unlimited) AS stock_unlimited_min ,MAX(stock_unlimited) AS stock_unlimited_max FROM dtb_products_class GROUP BY product_id ) AS T1 ON T1.product_id_sub = T2.product_id ) LEFT JOIN dtb_product_categories AS T3 ON T2.product_id = T3.product_id ) LEFT JOIN dtb_category AS T4 ON T3.category_id = T4.category_id ) AS T1 JOIN ( SELECT max(T3.rank) AS category_rank, max(T2.rank) AS product_rank, T2.product_id FROM dtb_product_categories T2 JOIN dtb_category T3 USING (category_id) GROUP BY product_id) AS T4 USING (product_id) WHERE del_flg = 0 AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE category_id IN ( '1' ) ) ORDER BY T4.category_rank DESC, T4.product_rank DESC [nativecode=1052 ** Column 'product_id' in IN/ALL/ANY subquery is ambiguous]

D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\html\admin\order\product_select.php 34:LC_Page_Admin_Order_ProductSelect_Ex->process
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\class_extends\page_extends\admin\order\LC_Page_Admin_Order_ProductSelect_Ex.php 56:LC_Page_Admin_Order_ProductSelect->process
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\class\pages\admin\order\LC_Page_Admin_Order_ProductSelect.php 168:SC_Query->select
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\class\SC_Query.php 95:SC_DbConn->getAll
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\class\SC_DbConn.php 160:DB_common->getAll
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\module\DB\common.php 1610:DB_common->execute
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\module\DB\common.php 959:DB_mysql->simpleQuery
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\module\DB\mysql.php 324:DB_mysql->mysqlRaiseError
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\module\DB\mysql.php 894:DB_common->raiseError
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\module\DB\common.php 1853:PEAR->raiseError
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\module\PEAR.php 557:DB_Error->DB_Error
D:\CustomerData\webspaces\webspace_0000000\wwwroot\example.com\eccube\data\module\DB.php 893:PEAR_Error->PEAR_Error
seasoft
投稿日時: 2010/2/25 12:47
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 受注管理>新規受注入力>商品の追加 カテゴリでの検索がエラー
テーブル名を明示していない箇所で、カラム名からテーブルを決定できない状況のようです。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

bunbun
投稿日時: 2010/3/11 12:17
対応状況: −−−
半人前
登録日: 2010/3/11
居住地: 東京都
投稿: 15
Re: 受注管理>新規受注入力>商品の追加 カテゴリでの検索がエラー
僕のレンタルサーバーでも上記の現象が出ます。

ただし、テスト環境であるMySQL5.0.4の環境では、正常に動きました。

下記エラーに書かれているSQL文をphpMyAdminにてMySQL4.1.2とMySQL5.0.4で流すと、5.0.4では正常にSQL文が流れ、MySQL4.1.2ではエラーが出ることを考えると、SQL文がMySQL4.1.2に対応していないという結論に達しました。

現在、私の借りているレンタルサーバー会社がEC-CUBE対応ということでしたので、調査してもらっています。

ちなみにカスタマイズしない更のままでも、MySQL4.1.2では出ました。

私の借りているレンタルサーバーでは、PostgreSQLもつかえるので、試してみたら、こちらでは正常に動きました。

MySQLのバージョンの差異みたいですね
bunbun
投稿日時: 2010/3/12 18:39
対応状況: −−−
半人前
登録日: 2010/3/11
居住地: 東京都
投稿: 15
Re: 受注管理>新規受注入力>商品の追加 カテゴリでの検索がエラー
上記の件解決しました!!

[環境]
EC-CUBE2.4.2
MySQL 4.1.22

[原因]
(元)
WHERE del_flg = 0
AND product_id IN (
SELECT product_id
FROM dtb_product_categories
WHERE
(修正後)
WHERE del_flg = 0
AND T1.product_id IN (
SELECT product_id
FROM dtb_product_categories
WHERE

最後のWhere句のテーブル指定がないため、MySQL4.1.22ではproduct_idがどのテーブルに属しているのか判別できません。

[対処]
/data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php

100行付近
(修正前)
$where.= " AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE " . $tmp_where . ")";

(修正後)
$where2 = $where. " AND T1.product_id IN (SELECT product_id FROM dtb_product_categories WHERE " . $tmp_where . ")";
$where.= " AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE " . $tmp_where . ")";

106行目付近
(修正前)
$where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code LIKE ? GROUP BY product_id)";
(修正後)
$where2 = $where. " AND T1.product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code LIKE ? GROUP BY product_id)";

$where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code LIKE ? GROUP BY product_id)";

175行目付近
(修正前)
$this->arrProducts = $objQuery->select($col, $from, $where, $arrval);

(修正後)
$this->arrProducts = $objQuery->select($col, $from, $where2, $arrval);

以上です。
治し方が悪いので、もっとちゃんと治してくださいね。
bunbun
投稿日時: 2010/3/12 19:18
対応状況: −−−
半人前
登録日: 2010/3/11
居住地: 東京都
投稿: 15
Re: 受注管理>新規受注入力>商品の追加 カテゴリでの検索がエラー
追伸

上記の修正だけじゃ、カテゴリーと商品番号両方入れられたら、またSQLエラーがでます。

どうしたもんでしょう?
gramparts
投稿日時: 2010/4/1 12:02
対応状況: −−−
新米
登録日: 2010/3/16
居住地:
投稿: 5
Re: 受注管理>新規受注入力>商品の追加 カテゴリでの検索がエラー
私も悩んだ挙句POSTGRESに変更したら
上手く行きました。

どうもEC-CUBEのラッパーがよろしくないようで、MYSQLの場合速度低下予期しないエラーに悩まされます。

大抵はSC_Queryに小細工すると上手く行くのですが・・・
今後の為Postgresに変更しました。
参考までに・・・
7878
投稿日時: 2010/5/11 16:51
対応状況: −−−
新米
登録日: 2009/6/19
居住地:
投稿: 4
Re: 受注管理>新規受注入力>商品の追加 カテゴリでの検索がエラー
申し訳御座いません。
もし、可能であれば教えてください。
私も、同じ内容で悩んでおります。
bunbun様の内容を元に修正してみましたが、
カテゴリの選択は使えるようになったのですが、
商品名と商品番号を入れようとするとエラーが
発生したり止まってしまいます。
改善方法がありましたら教えてください。

EC-CUBE2.4.0
MySQL 4.1.22
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,974名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.