繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> PHP技巧 >> php 进阶:实现无限分类(4)

php 进阶:实现无限分类(4)

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:25  文字大小:【】【】【
简介:4.路径跟踪 ------------------------------------------------------------ 前面已经介绍过了分类的创建实现方法,在分类表里记载了 rout_id 和 rout_char 这两个存储分类路径的信息,在不做任何处理的情况下,程...
关键字:进阶 分类 php

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 "

href=$php_self?func=showtype&uid=",$path[$a],">",$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 "

";

//******** end ***********************

} else {

$type='父分类';

}

echo "

";

echo "

";

$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 "

";

}

}

echo "

";

for ($i=0;;$i++) {

$a=$i+1;

echo "

href=$php_self?func=showtype&uid=",$path[$a],">",$path_gb[$i],":";

if (empty($path_gb[$i])) {

break;

}

}

echo "

创建分类
$type
";

echo "$type";

echo "

";

endif; /* end showtype */

.....

.....

?>

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

<全文完>

责任编辑:admin
相关文章