Mysql
 sql >> Baza danych >  >> RDS >> Mysql

OpenCart:Jak dokładnie wypełnić oc_category_path

Jeśli kategoria w twoim sklepie oc jest kategorią główną, otrzyma wpis w tabeli ścieżki, taki jak „category_id,category_id,0”. Jeśli ta kategoria ma dziecko, otrzyma dwa wpisy w tabeli, a mianowicie:-”category_id ,category_id,1” oraz „category_id,parent_id,0”.

Jeśli to dziecko ma swoje własne dziecko, to nowe dziecko będzie miało trzy wpisy jako takie :-
"category_id,category_id,2"
"category_id,parent_id,1"
"category_id,parents identyfikator_kategorii nadrzędnej,0"

Aby to zilustrować, załóżmy, że kategoria ma identyfikator_kategorii „14”. Jest to pierwsze dziecko kategorii z identyfikatorem_kategorii „11”. Ta kategoria, z identyfikatorem_kategorii „11” jest dzieckiem w kategorii z kategorią identyfikator „1”. (1>11>14 jak pokazano w panelu administracyjnym, z wyjątkiem nazwy zamiast identyfikatora_kategorii)

Powyższe będzie miało 3 wpisy jako takie:
"14","14","2"
"14","11","1"
"14","1" ,"0"

Tak więc kategoria główna otrzyma 0, następna otrzyma 1, następna 2 i tak dalej, wszystko w zależności od tego, o ile jest niższych poziomów kategorii.

Mam nadzieję, że to wszystko wystarczająco dobrze wyjaśni.

Jeśli chodzi o wypełnianie, najprostszą metodą, ale nie pełną, jest po prostu utworzenie tabeli z „category_id,category_id,0”. Dzięki temu pojawią się w panelu administracyjnym. Jeśli następnie klikniesz „napraw”, ta tabela zostanie wygenerowana poprawnie.

Ewentualnie musiałbyś przejść przez tabelę kategorii, tworząc tablicę z jej parent_id, szukając parent_id pod kątem parent_id i dodając ją do tablicy i tak dalej. Gdy tablica jest kompletna, tzn. nie ma już rodziców, będzie to proste zadanie dodania ich do tabeli z prawidłowym "poziomem".

FYI, istnieje inna tabela, która również wymaga wypełnienia, category_to_store, co oznacza po prostu „category_id,store_id”. Bez tej tabeli nie zobaczysz swoich kategorii w swoim sklepie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uszkodzenie bazy danych przez MariaDB :Tabela nie istnieje w silniku

  2. Zapytanie SQL zatrzymane w stanie statystyk

  3. Dowiedz się, jak importować dane z Excela do bazy danych MySQL

  4. Unicode w MySQL Regex?

  5. Wstaw MySQL tam, gdzie nie istnieje / jeśli nie istnieje