バグ報告 > 管理機能 > 受注管理>新規受注入力>商品の追加 カテゴリでの検索がエラー |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
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: 受注管理>新規受注入力>商品の追加 カテゴリでの検索がエラー テーブル名を明示していない箇所で、カラム名からテーブルを決定できない状況のようです。
|
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 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |