频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> PHP教程 -> php 进阶:实现无限分类(3)

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

作者:未知  来源:转载  发布时间:2005-7-21 9:01:02  发布人:acx

减小字体 增大字体

3.程序控制
------------------------------------------------------------

实现无限分类这个功能中就属这一步最为复杂辛苦,首先看看程序需要完成的步骤:

1)创建分类上传;
2)创建信息上传;
3)明确显示各分类及其之间的关系;
4)处理查询功能;
5)如何处理编辑和删除的功能;

而这五步中最为困难的就是第五个步骤,因为对分类的编辑和删除涉及到一至性的问题.

下面我就逐一描述 php 的程序控制:

1)创建分类上传

在介绍这个功能前,先介绍一下 explode( ) 这个函数,这是个字串处理函数,用来分解字串的,具体的用法,例:

分解"0:1:2:3:4"里的数字

$val=''0:1:2:3:4'';
$rid=explode(":",$val);

经过 explode( ) 函数处理,$val 内的所有数字都分解到 $rid 数组中了,要引用时只需打印:echo ''$rid[0],$rid[1],$rid[2]..."; 就行了.explode( ) 函数在整个分类处理中起着非常重要的作用,好现在开始介绍无现分类的程序控制.

可以假设个总分类 0 ,所有的分类都是它的子孙分类,现在来建立第一个分类''系统'',来看看它在数据库的存储形式:

id | uid | type | rout_id | rout_char
1 | 0 | 系统 | 0:1 | 系统

接着又在下面分''Linux'':

id | uid | type | rout_id | rout_char
2 | 1 | Linux| 0:1:2 | 系统:Linux

以上就是数据库存储的形式,现在就来完成 php 的代码,这与论坛的代码很相似,我们所要做的就是将分类的 id 放入 uid,而父分类的 uid 就放 0,下面来看看代码:

<?
.....
.....

//设置默认页
if (empty($func)) $func==''showtype'';

//设置父分类的 uid
if (empty($uid)) $uid=0;

//数据库存储************************************************
if ($func==''save''):

$fields = "";
$values = "";

if ($id!="") {
$fields .= ",id";
$values.=",$id";
}

if ($uid!="") {
$fields .= ",uid";
$values.=",$uid";
}

if ($type!="") {
$fields .= ",type";
$values.=",''$type''";
}

if ($route_id=="") {

//取得父分类的 route_id
if ($uid!=0) {
$result = mysqlquery("select * from type where id=$uid");
$route_id=mysql_result($result,0,"route_id");
} else {
$routr_id=''0'';
}
$fields .= ",route_id";
//形成自己的 route_id
$route_id="$route_id:$id";
$values.=",''$route_id''";
}

//形成自己的 route_char
if ($route_char!="") {
$fields .= ",route_char";
$route_char="$route_char:$type";
$values.=",''$route_char''";
} else {
$fields .= ",route_char";
$route_char=$type;
$values.=",''$route_char''";
}

$fields = substr($fields,1,strlen($fields)-1);
$values = substr($values,1,strlen($values)-1);

$result = mysqlquery("insert into type ($fields) values ($values)");
...
endif; /* end save */


//分类上传************************************************
if ($func==''createtype''):

//取得自己的 id
$result = mysqlquery("select * from type order by
id desc");
$num=mysql_numrows($result);
if (!empty($num)) {
$cat = mysql_result($result,0,"id");
} else {
$cat=0;
}

//判断分类的状态
if ($uid != 0) {
$result=mysql_query("select * from type where id=$uid");
$type=mysql_result($result,0,"type");
$route_char=mysql_result($result,0,"route_char");
} else {
$type=''父分类'';
}
echo "<FORM ACTION="$PHP_SELF?func=save" METHOD=POST>";

echo "<table>";
echo "<tr><td>所属类别:$type</td></tr>";
echo "<tr><td>创建分类:<input type=text name=''type'' SIZE=10 MAXLENGTH=100></td></tr>";

echo "<tr><td>";
$cat=$cat+1;
echo "<input type=hidden name=id value=''$cat''>";
echo "<input type=hidden name=uid value=''$uid''>";
echo "<input type=hidden name=route_char value=''$route_char''>";
echo "<INPUT TYPE=submit NAME=''Save'' VALUE=''保存''></td></tr>";

echo "</table>";
echo "</form>";
endif; /* end createtype */

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

echo "<table>";

//判断分类的状态
if ($uid!=0) {
$result=mysql_query("select * from type where id=$uid");
$type=mysql_result($result,0,"type");
} 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 */
.....
.....

?>

将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· 彩色校验码的制作
· bbs树形结构的实现方法(..
· 如何策划你的导出链接
· 简单学习动态网页制作PH..
· 制作一个个人搜索引擎(..
· DataGrid Web控件深度历..
· Win2003下Asp配置技巧
· PHP编程网上资源导航
· 新浪退出 一拍网将在春节..
· XML简明教程第2课: 处理..
· 百度TV试运行 为开发联盟..
· SQL Server 7.0 入门(三..
· 从ASP迁移至ASP+--Custo..
· 一个很简单的验证码程序..
· "公交MM"一周点击32万 蹿..
· 挂QQ的网页源代码[ASP/P..
相关文章
· PHP 开发中的中文编码问题
· 用 PHP V5 开发多任务应用程..
· Windows下的 Apache + PHP ..
· 用 PHP 构建自定义搜索引擎..
· 星河数据免费提供300M/ASP/..
· 测试 Apache Web 和 PHP 应..
· 使用PHP 5.0 轻松解析XML文..
· 使用PHP 5.0 轻松解析XML文..
· 使用PHP 5.0 轻松解析XML文..
· 使用PHP 5.0 轻松解析XML文..
· PHP 和 MySQL 基础教程(四..
· PHP 和 MySQL 基础教程(三..
· PHP 和 MySQL 基础教程(二..
· PHP 和 MySQL 基础教程(一..
· PHP 远程过程调用 —— php..
· 接触 solaris : 安装 apach..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号