Mysql
 sql >> база данни >  >> RDS >> Mysql

OpenCart:Как точно да попълните oc_category_path

Ако категория във вашия oc store е основна категория, тя получава запис в таблицата с пътища като "category_id,category_id,0". ако тази категория има дъщерна категория, тя ще получи два записа в таблицата, а именно:-"category_id ,category_id,1", както и "category_id,parent_id,0".

Ако това дете има свое собствено дете, това ново дете ще има три записа като такива:-
"category_id,category_id,2"
"category_id,parent_id,1"
"category_id,parents родителска категория_id,0"

За да илюстрирате това, приемете, че една категория има категория_id от "14". Това е първото дете на категория с идентификатор на категория от "11". Тази категория с идентификатор на категория от "11" е детето в категория с категория идентификатор на "1". (1>11>14, както се показва в административния панел, освен с името вместо идентификатора на категорията)

Горното ще има 3 записа като такива:
"14","14","2"
"14","11","1"
"14","1" ,"0"

Така основната категория към нея ще получи 0, следващата ще получи 1, а следващата 2 и така нататък, всичко зависи от това колко нива на категория надолу е.

Надявам се, че това обяснява нещата достатъчно добре.

Що се отнася до попълването му, най-простият метод, но не и пълен метод, е просто да създадете таблицата с "category_id,category_id,0". Това ще ги накара да се покажат в административния панел. Ако след това щракнете върху "поправка", тя ще генерира тази таблица правилно.

Като алтернатива ще трябва да преминете през таблицата на категориите, да създадете масив с неговия parent_id, да потърсите този parent_id за неговия parent_id и да го добавите към масива и така нататък. Когато масивът е завършен, т.е. няма повече родители, ще бъде проста задача да ги добавите към таблицата с правилното "ниво".

FYI, има и друга таблица, която също се нуждае от попълване, category_to_store, което е много просто "category_id, store_id". Без тази таблица няма да виждате вашите категории във вашия магазин.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намерете и заменете цялата база данни на mysql

  2. Мога ли да създам база данни, използвайки PDO в PHP?

  3. PHP открива опит за SQL инжекция

  4. Показване на пълната SQL заявка в Покажи списък с процеси на MySQL

  5. Ред за изпълнение на MySQL заявка/клауза