wordpress像php mysql中的父子多级别类别

时间:2011-04-15 13:40:42

标签: php mysql

我想创建具有无限级别的父子关系的类别 我有这些表类别,其中包含这些列

cat_id               INT             NOTNULL     AUTOINCREAMENT PRIMARY
cat_name             VARCHAR(50)     NOT NULL
parent_id            INT             NULL      
grand_parent_id      INT             NULL

我想添加无限级别的类别和子类别。 例如,我想添加类别Web然后我添加另一个类别其子'PHP' 然后我想添加另一个类别'Cake',其父级是PHP。

所以层次结构应该是这样的:Web→PHP→Cake Web现在是祖父母,PHP是Web的父母和子女,而Cake是PHP的孩子和Web的孙子。

我的界面如下所示:

  • textfield add category
  • 下拉列表包含您可以选择为“父
  • ”的所有现有类别

如果我输入一个新类别,让我们假设我添加了Web,它的cat_id和cat_name在parent_id和grand_parent_id值为'0'的类别表中输入。

然后我插入一个新类别PHP并在下拉列表中选择Web作为其父级;现在插入应该是这样的: php cat_id和cat_name条目在其列和parent_id中获取下拉类别值,即Web和grand_parent_id值为'0'。

现在我插入新类别Cake并在下拉列表中选择PHP作为父级;现在插入应该是这样的: cake cat_id和cat_name在其列和parent_id中插入下拉类别id,即PHP,在grand_parent_id中输入值为2的Web。

你能告诉我怎么办?

1 个答案:

答案 0 :(得分:1)

我认为你有点过于复杂。删除grand_parent_id,因为在这些情况下它有点无意义。只需记录parent_id,然后就可以使用递归函数将类别映射到对象或数组中。

请看一下这篇文章,以澄清http://kevin.vanzonneveld.net/techblog/article/convert_anything_to_tree_structures_in_php/

希望有所帮助!