質問 > 管理機能 > 商品並び替え設定のエラーについて eccube2.13.5 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
mtec |
投稿日時: 2017/9/19 14:03
対応状況: 解決済
|
常連 登録日: 2014/11/18 居住地: 投稿: 60 |
商品並び替え設定のエラーについて eccube2.13.5 管理画面の、
商品管理メニューより、商品並び替えを選び、 カテゴリごとに商品を並び変えるために 「内部順位再割り当て」のボタンを押すと、以下のようなエラーが出てしまいます。 ▼▼▼ デバッグ情報ここから ▼▼▼ http://www.****.com/admin/products/product_rank.php? Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 SQL: [ UPDATE dtb_product_categories SET rank = ( SELECT COUNT(*) FROM dtb_product_categories t_in WHERE t_in.category_id = dtb_product_categories.category_id AND ( t_in.rank < dtb_product_categories.rank OR ( t_in.rank = dtb_product_categories.rank AND t_in.product_id < dtb_product_categories.product_id ) ) ) + 1 WHERE dtb_product_categories.category_id = ?] MDB2 Error: unknown error _doQuery: [Error message: Could not execute statement] [Last executed query: PREPARE mdb2_statement_mysql_93b20ca4e7d6ef4b9cc4165e9e59b94365a6b8c0f FROM ' UPDATE dtb_product_categories SET rank = ( SELECT COUNT(*) FROM dtb_product_categories t_in WHERE t_in.category_id = dtb_product_categories.category_id AND ( t_in.rank < dtb_product_categories.rank OR ( t_in.rank = dtb_product_categories.rank AND t_in.product_id < dtb_product_categories.product_id ) ) ) + 1 WHERE dtb_product_categories.category_id = ?'] [Native code: 1093] [Native message: You can't specify target table 'dtb_product_categories' for update in FROM clause] on [/virtual/*****/public_html/www.******/data/class/SC_Query.php(1095)] /virtual/*****/public_html/www.******/admin/products/product_rank.php(29): LC_Page_Admin_Products_ProductRank_Ex->process /virtual/*****/public_html/www.******/data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_ProductRank_Ex.php(54): LC_Page_Admin_Products_ProductRank->process /virtual/*****/public_html/www.******/data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php(57): LC_Page_Admin_Products_ProductRank->action /virtual/*****/public_html/www.******/data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php(94): LC_Page_Admin_Products_ProductRank->lfRenumber /virtual/*****/public_html/www.******/data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php(165): SC_Query->query /virtual/*****/public_html/www.******/data/class/SC_Query.php(868): SC_Query->prepare /virtual/*****/public_html/www.******/data/class/SC_Query.php(1024): SC_Query->error /virtual/*****/public_html/www.******/data/class/SC_Query.php(1095): trigger_error ▲▲▲ デバッグ情報ここまで ▲▲▲ 商品データやカテゴリデータなどをCSVでインポートしておりますので、そのせいだとは思うのですが、 どのように修正すれば良いか、分かりましたらご教授ください。 よろしくお願いします。 [EC-CUBE] 2.13.5 [PHP] 5.6.31 [データベース] MySQL 5.7.17-log |
shinra |
投稿日時: 2017/9/19 15:44
対応状況: −−−
|
一人前 登録日: 2017/9/2 居住地: 投稿: 124 |
Re: 商品並び替え設定のエラーについて eccube2.13.5 原因はUPDATEするクエリ内にサブクエリとしてUPDATEするテーブルを使用できないっていう制限に引っかかった事にあります。
なのですごい雑に作った感じですが、 LC_Page_Admin_Products_ProductRankのlfRenumberを
このように変更することで対応ができるようになります。 多分ちゃんとクエリ書けば行ける気はするんですが、取り急ぎエラー無く通るようになります。 |
mtec |
投稿日時: 2017/9/19 16:09
対応状況: 解決済
|
常連 登録日: 2014/11/18 居住地: 投稿: 60 |
Re: 商品並び替え設定のエラーについて eccube2.13.5 ありがとうございます。
ここまで親切にしていただき、感謝いたします。 完璧に動作しました ほんとうにありがとうございました。 hinraさんは天才ですね。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |