sql >> データベース >  >> RDS >> Mysql

OpenCart:oc_category_pathに正確に入力する方法

    ocストアのカテゴリがルートカテゴリである場合、パステーブルに「category_id、category_id、0」などのエントリが取得されます。そのカテゴリに子がある場合、テーブルに2つのエントリ、つまり:-"category_idが取得されます。 、category_id、1 "および"category_id、parent_id、0"。

    その子に独自の子がある場合、その新しい子には次の3つのエントリがあります:-
    "category_id、category_id、2"
    "category_id、parent_id、1"
    "category_id、parents親category_id、0 "

    これを説明するために、カテゴリのcategory_idが「14」であると仮定します。これはcategory_idが「11」のカテゴリの最初の子です。category_idが「11」のそのカテゴリは、カテゴリのカテゴリの子です。 「1」のID。 (1> 11> 14は、管理パネルに表示されますが、category_idの代わりに名前が表示されます)

    上記には、次の3つのエントリがあります:
    "14"、 "14"、 "2"
    "14"、 "11"、 "1"
    "14"、 "1" 、"0"

    したがって、ルートカテゴリは0になり、次のカテゴリは1になり、次のカテゴリは2になります。これらはすべて、下位のカテゴリレベルの数によって異なります。

    それが物事を十分に説明することを願っています。

    移入に関しては、完全な方法ではありませんが、最も簡単な方法は、「c​​ategory_id、category_id、0」を使用してテーブルを作成することです。これにより、管理パネルに表示されます。次に「修復」をクリックすると、このテーブルが正しく生成されます。

    または、カテゴリテーブルをステップ実行し、parent_idを使用して配列を作成し、そのparent_idでそのparent_idを検索して、配列に追加する必要があります。配列が完成すると、つまり親がなくなると、正しい「レベル」でテーブルに追加するという簡単な作業になります。

    参考までに、入力が必要な別のテーブル、category_to_storeがあります。これは、非常に単純な「category_id、store_id」です。このテーブルがないと、ストアにカテゴリが表示されません。




    1. MySQLを介したBashスクリプトループ

    2. インデックス付きvarchar(255)をutf8からutf8mb4に変更し、それでも767の最大キー長を下回ったままにするにはどうすればよいですか?

    3. 2つの文字列間のMySqlクエリが機能しない場合があります

    4. asp.netを使用してmySQLデータベースに接続する