当前位置:编程学堂 > PHP原生:无限分类

PHP原生:无限分类

  • 发布:2023-09-29 11:58

解释核心:顶级类别0下可以有无限个子类别,这就是所谓的无限分类。简单来说就是中国:大比例尺和小比例尺<<<所属>>>:海南。

就像这张图一样,核心就是从顶级类别pid=0开始,顶级类别中的id为找到所有相同pid的子类别,然后这些子类别的id就会找到下一级的pid(除了顶级类别pid=0,因为上面没有id)。好好理解这句话你就明白了。


$db_host="本地主机";
$db_user="root";
$db_password="";$db_name="书";
$link=mysql_connect($db_host,$db_user,$db_password)mysql_error;
mysql_select_db($db_name,$link) mysql_error) ());
mysql_query("设置名称utf8") die("编码设置错误") ;
函数 getList($pid=0,&$结果=数组(),$spac=0){$spac=$spac+2;$sql= “从书中选择 *,其中 pid=$ pid";$res=mysql_query($sql);同时( $row=mysql_fetch_assoc($res)){$行['类别名称']=str_repeat(" ",$spac) ."|--".$行['类别名称'];$结果[]=$行;getList($行['id'],$结果,$spac) ;}返回 $结果;
}
功能 显示类别($pid=0,$已选择 =1){$str="";$rs=getList($pid);$str.=";
}
回声 显示类别(0,2);

数据库:

-- phpMyAdmin SQL 转储
--版本4.8.5
-- https://www.sychzs.cn/
--
-- 主机: localhost
--生成日期: 2021-12-04 22:20:26
--服务器版本: 5.7.26
-- PHP 版本: 7.3.4SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO “
SET 自动提交 = 0;开始 交易;
SET时区="+00:00";/*!第40101章 设置@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 设置@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 设置@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 设置名称 utf8mb4 */;--
-- 数据库: `rageframe`
-------------------------------------------- ------------------
--表格的结构`book`--创建 表格`` (`id`  int(10) NOT NULL ,`pid`int(11)NOTNULL,`类别名称` varchar (30)NOTNULL,`分类顺序` int(11) NOTNULL,`createtime`int(10)NOT NULL
) 引擎=MyISAM 默认 CHARSET=utf8;--
--转存表中的数据`book`
--INSERTINTO`` (`id` ,`pid`, `类别名称`, `分类订单`,`创建时间`)  价值观
(1,0,'新闻', 0,0),(2,0,'图片', 0, 0),
(3,1,'国内新闻', 0, 0),
(4,1,'国际新闻', 0,0),
(5,3,'北京新闻', 0, 0),
(6,4,'美国新闻', 0, 0),
(7,2,'美丽的图画', 0, 0),
(8,2,'风景图片', 0, 0),
(9,7,'日本明星', 0,0),0,0);
COMMIT;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 设置 CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 设置 COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

相关文章