Ukulele LIFE

趣味のウクレレに関するサイトです。私はソロウクレレが大好き。

EC-CUBE 2.11 カテゴリー重複した時の直し方

いつもの内容と全く関係の無い内容ですが、、、自分のメモのため

 

EC-CUBEって通販で使うサイトを作るツールです。

レンタルサーバーとかだとかんたんにインストールできたりしますよね。

私が使っているのはバージョンとしては結構古いのですが、EC-CUBE2.11を使っています。

そのEC-CUBEサイドメニューのカテゴリーが重複してしまって困っていました。

データ触っている時になんらかのエラーが起きてしまうと重複して表示されるようになってしまうことがあるそうです。

 

EC-CUBE開発コミュニティでもそのように書かれています。

EC-CUBE 開発コミュニティ - フォーラム

 

原因としては、dtb_category_total_count テーブルに同じidが登録されることでなるみたいです。

 

思うところ(独り言)

この問題ってデータベース設計に問題あるのではないかと思うのですが、、、

category_id キーを主キーにしとけば、そんなことにならないのではないかと思います。

複数データを登録させないなら、このキーを主キーにしとくべきじゃね??

 

と愚痴はこの辺にしておいて(汗)

 

修正方法

データベースのデータに直接アクセスできるように、phpMyAdminでデータべースにログインします。

 

ここで、ログインのユーザー、パスワードがわからない・・・って私は困ったのですが、EC-CUBEをインストールしているフォルダを探せば見つかりました。

私の場合は、

EC-CUBEインストールフォルダ/data/config

にconfig.phpというファイルがあり、その中に書かれていました。

 

この部分です

define ('DB_USER', 'XXXXXXXXXXX');
define ('DB_PASSWORD', 'XXXXXXXXXXXX');

 

このユーザー、パスワードでログインできました。

 

それではやっていきましょう!

 

※データを直接さわるので、慎重に!!

 

0.データのバックアップ

dtb_category_total_count テーブルに重複データがあることを確認したら、そのテーブルをバックアップします。

phpMyadminのエクスポート機能を使うといいと思います。

 

1.まずは検索 (私の場合はidが82でした)

SELECT * FROM `dtb_category_total_count` WHERE category_id = '82'

これで複数件データが検索されることを確認してください。(私の場合は3件ありました)

※3でデータを使うので、メモしておきましょう!

 

2.対象データを一度すべて削除

先程の SELECT * の部分をDELETEに書き換えて実行します。

データが3件消去されました。

 

3.対象データの挿入(1件のみとする)

INSERT INTO `dtb_category_total_count` VALUES (82, 272, '2021-07-19 14:33:36')

最初に検索したデータを控えておいて、1件だけデータを挿入します。

 

これで、完成です。

 

久しぶりにSQL文でデータベースを触ったので、ドキドキしちゃいました。