Có vẻ hơi phức tạp và không linh hoạt những gì bạn đang làm ở đây Gilles. Sẽ không tốt hơn nếu tạo bảng cơ sở dữ liệu của bạn với mỗi hàng có Category_id riêng và parent_id? tức là cung cấp cho các bậc cha mẹ cấp cao nhất một parent_id bằng 0 và những đứa trẻ lấy parent_id của category_id của bậc cha mẹ của chúng. Điều này sẽ cung cấp cho bạn độ sâu không giới hạn và sẽ dễ viết mã hơn khi bạn đang kết xuất cây. Ví dụ:
SQL cho cấp phân cấp đầu tiên của bạn -
SELECT * FROM (your_table) WHERE parent_id=0
SQL cho cấp phân cấp thứ hai của bạn -
SELECT * FROM (your_table) WHERE parent_id=(category_id of first level)
SQL cho cấp phân cấp thứ ba của bạn -
SELECT * FROM (your_table) WHERE parent_id=(category_id of second level)
và như vậy ...