php 进阶:实现无限分类

 更新时间:2006年12月16日 00:00:00   作者:  

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 "<a 
href=$php_self?func=showtype&uid=",$path[$a],">",$path_gb[$i],"</a>:"; 
if (empty($path_gb[$i])) { 
break; 



上面这段代码就实现了加链接还原路径的功能,因为实现的是无限分类,因此是没有上限的,所以在 for($i=0;;$i++) 里没有范围限制,而设置循环退出的条件是 $path_gb[$i] 中的值为空,将这段代码插入类别显示版面的程序块内就行了: 

<? 
..... 
..... 
//显示分类************************************************ 
if ($func=='showtype'): 

echo "<table>"; 

//判断分类的状态 
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 "<tr><td>"; 
for ($i=0;;$i++) { 
$a=$i+1; 
echo "<a 
href=$php_self?func=showtype&uid=",$path[$a],">",$path_gb[$i],"</a>:"; 
if (empty($path_gb[$i])) { 
break; 


echo "</td></tr>"; 
//******** end *********************** 

} else { 
$type='父分类'; 


echo "<tr><td><a href='$php_self?func=createtype&uid=$uid'>创建分类</a></td></tr>"; 

echo "<tr><td>$type</td></tr>"; 

$result=mysql_query("select * from type where uid=$uid"); 
$num=mysql_numrows($result); 

if (!empty($num)) { 
for ($i=0;$i<$num;$i++) { 

$id=mysql_result($result,$i,"id"); 
$type=mysql_result($result,$i,"type"); 

echo "<tr><td>"; 
echo "<a href='$php_self?func=showtype&uid=$id'>$type</a>"; 
echo "</td></tr>"; 



echo "</table>"; 
endif; /* end showtype */ 
..... 
..... 
?> 

完成这个功能块后,就可继续分类信息的显示实现了...

相关文章

  • PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID

    PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID

    向mysql 插入数据时,很多时候我们想知道刚刚插入数据的id,这对我们很有用。下面这篇文章就详细给大家介绍了利用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID,有需要的朋友们可以参考借鉴,感兴趣的朋友们下面来一起看看吧。
    2016-11-11
  • php cookie使用方法学习笔记分享

    php cookie使用方法学习笔记分享

    在php中cookie与其它程序中没什么两样,cookie都是用来存储信息到客户端,常用用于安全性要求不高的一些应用中,如用户登录记住密码之类的,下面我来给大家介绍一下php cookie学习笔记
    2013-11-11
  • php中用数组的方法设置cookies

    php中用数组的方法设置cookies

    php中用数组的方法设置cookies,需要的朋友可以参考下。
    2011-04-04
  • PHP获取文件行数的方法

    PHP获取文件行数的方法

    这篇文章主要介绍了PHP获取文件行数的方法,实例分析了两种php获取文件行数的技巧,需要的朋友可以参考下
    2015-06-06
  • PHP7 preg_replace 出错及解决办法

    PHP7 preg_replace 出错及解决办法

    在本篇文章里小编给大家整理的是一篇关于PHP7 preg_replace 出错及解决办法,有需要的朋友们可以跟着学习下。
    2021-12-12
  • 简单的方法让你的后台登录更加安全(php中加session验证)

    简单的方法让你的后台登录更加安全(php中加session验证)

    通过特定文件为后台入口注册session,否则失败退出。即直接使用原后台地址将无法登录后台。这样一来,入口文件名的多样性、可变更性将为你的后台登录提供更加安全的环境
    2012-08-08
  • PHP获取星期几的常用方法小结

    PHP获取星期几的常用方法小结

    这篇文章主要介绍了PHP获取星期几的常用方法,结合实例形式分析了php使用date函数获取指定日期星期几的具体操作技巧与相关注意事项,需要的朋友可以参考下
    2018-12-12
  • redirect_uri参数错误的解决方法(必看)

    redirect_uri参数错误的解决方法(必看)

    下面小编就为大家带来一篇redirect_uri参数错误的解决方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • php+html优化页面显示速度的方法小结

    php+html优化页面显示速度的方法小结

    这篇文章主要为大家详细介绍了php结合html优化页面显示速度的一些常见方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • php超快高效率统计大文件行数

    php超快高效率统计大文件行数

    这篇文章主要介绍了php超快高效率统计大文件行数的相关资料,需要的朋友可以参考下
    2015-07-07

最新评论