Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP MySQL的类别层次结构(按顺序)_Php_Mysql_Database_Hierarchy - Fatal编程技术网

使用PHP MySQL的类别层次结构(按顺序)

使用PHP MySQL的类别层次结构(按顺序),php,mysql,database,hierarchy,Php,Mysql,Database,Hierarchy,我试图对层次结构中的所有类别和子类别进行排序: 重点是如何有序地从MySQL获取它们(使用位置字段) Cat A-->位置10 子类别1-->位置10 Sub_Sub_Cat 1-->位置20 Sub_Sub_第2类-->位置10 Sub_第2类-->位置30 B类-->位置20 C类-->位置30 MySQL代码: CREATE TABLE IF NOT EXISTS `categories` ( `category_id` mediumint(8) unsigned NO

我试图对层次结构中的所有类别和子类别进行排序:

重点是如何有序地从MySQL获取它们(使用位置字段)

  • Cat A-->位置10
    • 子类别1-->位置10
    • Sub_Sub_Cat 1-->位置20
      • Sub_Sub_第2类-->位置10
    • Sub_第2类-->位置30
  • B类-->位置20
  • C类-->位置30
MySQL代码:

 CREATE TABLE IF NOT EXISTS `categories` (
   `category_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
   `position` smallint(5) unsigned,
   `parent_id` mediumint(8) unsigned NOT NULL DEFAULT '0'
  PRIMARY KEY (`category_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;

是否要使用SQL遍历树?这在邻接列表模型中是不可能的,您必须使用。然后你只需按左键排序,就可以将整棵树按正确的顺序排列。

哇,这太酷了。真不敢相信我以前从没见过这个!这确实解释了一些数据库中奇怪的“lft”和“rgt”字段;)