欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php进阶实现无限分类4

程序员文章站 2022-06-06 14:16:47
...
4.路径跟踪 ------------------------------------------------------------ 前面已经介绍过了分类的创建实现方法,在分类表里记载了 rout_id 和 rout_char 这两个存储分类路径的信息,在不做任何处理的情况下,程序只能够顺序下到最底层的分类而无法倒退(当然可利用浏览器的 back 键倒退,但这对程序来说是不完整的),因此必须将 rout_id 和 rout_char 的信息分解出来完成实在的路径指示. 具体的做法,假如数据库记载了这么一条分类信息: id:4 uid:2 type:开发工具 rout_id:0:1:2:4 rout_char:系统:linux:开发工具 当程序走到分类开发工具上时,除了要求显示路径信息外还要求能够去到路径上的任一分类中,该怎么做能?这里就需要用到 explode() 函数了.因为 rout_id 和 rout_char 是对应关系的,所以可将它们分解: $path=explode(":",$rout_id); $path_gb=explode(":",$rout_char); 这时所有分类信息都被分解了,现在要做的就是以链接的方式还原路径信息: for ($i=0;;$i++) { $a=$i+1; echo "",$path_gb[$i],":"; if (empty($path_gb[$i])) { break; } } 上面这段代码就实现了加链接还原路径的功能,因为实现的是无限分类,因此是没有上限的,所以在 for($i=0;;$i++) 里没有范围限制,而设置循环退出的条件是 $path_gb[$i] 中的值为空,将这段代码插入类别显示版面的程序块内就行了: ..... ..... //显示分类************************************************ if ($func==showtype): echo ""; //判断分类的状态 if ($uid!=0) { $result=mysql_query("select * from type where id=$uid"); $type=mysql_result($result,0,"type"); //******** 新加入的代码 *************** $rout_id=mysql_result($result,0,"rout_id"); $rout_char=mysql_result($result,0,"rout_char"); $path=explode(":",$rout_id); $path_gb=explode(":",$rout_char); echo ""; for ($i=0;;$i++) { $a=$i+1; echo "",$path_gb[$i],":"; if (empty($path_gb[$i])) { break; } } echo ""; //******** end *********************** } else { $type=父分类; } echo "创建分类"; echo "$type"; $result=mysql_query("select * from type where uid=$uid"); $num=mysql_numrows($result); if (!empty($num)) { for ($i=0;$i 完成这个功能块后,就可继续分类信息的显示实现了...