Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

OpenCart:Cách điền chính xác oc_category_path

Nếu một danh mục trong cửa hàng oc của bạn là một danh mục gốc, nó sẽ nhận được một mục nhập trong bảng đường dẫn, chẳng hạn như "category_id, category_id, 0". Nếu danh mục đó có con, nó sẽ nhận được hai mục nhập trong bảng, đó là:- "category_id , category_id, 1 "cũng như" category_id, parent_id, 0 ".

Nếu đứa trẻ đó có một đứa con riêng của nó, đứa trẻ mới đó sẽ có ba mục nhập như:-
"category_id, category_id, 2"
"category_id, parent_id, 1"
"category_id, cha mẹ Category_id gốc, 0 "

Để minh họa điều này, giả sử một danh mục có category_id là "14". Nó là con đầu tiên của một danh mục có category_id là "11". Danh mục đó, với category_id là "11" là con trên một danh mục có danh mục id của "1". (1> 11> 14 như hiển thị trong bảng điều khiển quản trị, ngoại trừ tên thay vì category_id)

Ở trên sẽ có 3 mục như:
"14", "14", "2"
"14", "11", "1"
"14", "1" , "0"

Vì vậy, danh mục gốc đối với nó sẽ nhận 0, danh mục tiếp theo nhận 1 và 2 tiếp theo, v.v., tất cả tùy thuộc vào số lượng danh mục cấp xuống.

Tôi hy vọng rằng giải thích mọi thứ đủ tốt.

Đối với việc điền nó, phương pháp đơn giản nhất, nhưng không phải là một phương pháp hoàn chỉnh, là chỉ tạo bảng với "category_id, category_id, 0". Điều này sẽ làm cho chúng hiển thị trong bảng quản trị. Nếu sau đó bạn nhấp vào "sửa chữa", nó sẽ tạo ra bảng này một cách chính xác.

Ngoài ra, bạn sẽ phải bước qua bảng danh mục của mình, tạo một mảng với nó là parent_id, tìm kiếm parent_id đó cho nó là parent_id và thêm nó vào mảng, v.v. Khi mảng hoàn tất, tức là không còn cha mẹ nữa, sẽ chỉ đơn giản là thêm chúng vào bảng với đúng "cấp độ".

FYI, có một bảng khác cũng cần điền, category_to_store, rất đơn giản là "category_id, store_id". Nếu không có bảng này, bạn sẽ không thấy các danh mục của mình trong cửa hàng của bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Danh sách đầy đủ các ngôn ngữ trong MySQL

  2. Giải pháp DBaaS tốt nhất cho MySQL

  3. Cách chuyển ArrayList <> dưới dạng mệnh đề IN trong truy vấn SQL trong MySQL

  4. Làm cách nào để lưu trữ kết quả truy vấn MySQL trong Bảng khác?

  5. cách tìm nạp nhiều tập kết quả từ một thủ tục được lưu trữ mysql trong laravel