php开源嘛
首页 | English | MySql数据库 | Php编程 | 建站杂烩 | 系统服务器 | 资源共享 | 专题 | 才桀网 | 支持论坛
  当前位置:主页>资源共享>站长学院>文章内容
实现网站的无限分类:PHP进阶教程
来源:网络 作者:本站整理 发布时间:2007-07-31  

实现网站的无限分类:PHP进阶教程

          1.分析 phpma.com

           我们在用 php 制作网站时,分类是很重要的,在分类下面又再分类这第二个分类称为次分类,而现在大多数网站分类只分到第三类:

            第一分类(父分类)-->第二分类(子分类)-->第三分类(孙分类) phpma.com

            这种亲缘分类越多,程序和数据库的控制就越加的复杂困难.在同一级的分类处理和控制是非常的简单的,因为只需要一个数据库来记载这一级的分类就行了,如:系统,新闻等分类,在这一级上处理是很简单的,但对一个网站来说一级分类是不够的,还需要再分类,如:

            系统-->linux,windows
新闻-->linux 新闻,windows 新闻 phpma.com

            这样分类就清晰些了,至少让人明白了,系统包括 linux 和 windows,而新闻包括 linux 新闻和 windows 新闻,为了让信息资料更加清晰,于是再继续分类:

linux-->系统工具,内核,编程语言,开发工具
...

           分类到了第三级,信息资料的处理就更清晰了,也就是说为了很清晰地处理资料,分类越详细就越方便,这样即方便处理信息又方便网友目的明确地查找到需要的资料,但随着不断的细化分类,在程序和数据库的控制上就会越来越困难.

           困难一:如何在数据库里处理这些互有关联的亲缘分类? phpma.com
困难二:如何用 php 完成这种一目了然的关系?

           这种分级多而细的分类是每个 php 程序员都必须解决的问题,因为制作一个好而出色的网站分类问题是不可避免的,而解决这个问题又是相当复杂的,其中最大的问题就是数据库的分类处理,因为如果数据库处理不当将会带来巨大的工作量甚至是不得不重新规划数据库...

            这并不是夸张,因为很多人在数据库处理上就会采用一级分类建立一个数据库的做法,我当时也是采取这种方法处理分类的,因大多网站都是分到第三级,所以数据库里只需三个分类数据库来进行处理.但是需要继续向下分类时,这种做法的弊端就显露出来了,因为越往下分,工作量,程序量将会巨增..

            我要介绍的这种方法就是如何用一个分类数据库建立无限向下分级的分类方法,用过 windows 的读者都知道 windows 文件夹就可以建立无限分级的目录,可在目录下面继续建立目录,这样没完没了的分下去,Linux 的目录创建也有这种功能,我介绍的这个方法跟这种形式相同.phpma.com

2.数据库的规划 phpma.com

------------------------------------------------------------
             前面谈到分类的复杂性,因此如何规划数据库便成为了实现无限分类非常重要的一步.

            我曾介绍过论坛的数据库规划,不错论坛能够实现无限的跟接,无限分类便是这种形式的扩展,分类同样是这种子父的关联关系,所以分类的数据库就是如何确立明确这种子父关系,这里面有几个难点.

1)如何处理各分类的信息存储;
2)如何处理分类的亲缘关系;
3)如何处理对信息的查询; phpma.com

            亲缘关系的数据库处理与论坛的数据库处理类似,这里建个 type 的数据库用来处理分类:

建立字段:
id(int):用来记录各分类的自然序号
uid(int):用来记录该分类的父分类的 id 号
type(char):类别的名称
roue_id(varchar):亲缘树,以 :0:2:10:20: 的 id 连接表明亲源关系
roue_char(varchar):亲缘树,类似 :系统:linux:开发工具:gcc: (这个字段有没有都没关系,为了更方便地了解各亲缘关系当然字符表述比数字表述更直接^o^,不过最好加上这个字段)

           这样一个无限分类的类别表就建立了起来,接下来就需要建立存储信息的数据库,处理查询一个表最方便所以这里建立一个表存储信息 type_message:

id(int):信息的序号;

typeid(int):所属类别的 id 号;
title(varchar):信息标题;
message(text):信息内容;
time:信息建立的时间;

          这两个数据表就能够完成无限分类的这个任务了(两个表的辅助字段就没加了,读者可自行加入).

剩下的任务就全部交由 php 来处理完成。phpma.com

3.程序控制

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

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

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

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

1)创建分类上传

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

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


(阅读次数:
共3页: 上一页 1 [2] [3] 下一页
上一篇:PHP实例:从数组里筛选出重复的数据   下一篇:网页制作技术PHP的拼写检查函数库
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·win中PHP5和Apache的安装与配置
·用PHP实现Ftp用户的在线管理
·教你如何优化MySQL数据库性能
·如何使用PHP创建RSS阅读器
·怎样建站,新手建站经验谈……
·用PHP制作登录页面程序
·php中的几个require()函数介绍
·PHP编程:实现QQ在线状态{教程}
·PHP开发入门教程之面向对象{学习
·JS实现禁止查看网页源代码方法总
·利用PHP和CSS改变网页文字大小
·简单的PHP&MYSQL留言板教程
  相关文章
·PHP开发入门教程之面向对象{学习
·用PHP制作登录页面程序
·教您如何安全的应用 MySQL
·PHP程序直接调用文本文件内容实
·怎么在IIS6中最佳配置PHP方法
·win中PHP5和Apache的安装与配置
·PHP5在Apache下的两种模式的安装
·教你如何优化MySQL数据库性能
·php中的几个require()函数介绍
·怎样建站,新手建站经验谈……
·简单的PHP&MYSQL留言板教程
·如何使用PHP创建RSS阅读器

关于我们 | 本站声明 | 友情连接 | 诚邀加盟 | 网站地图
版权Power by DedeCms   技术支持QQ =>> 罗江游鱼   Jacking  后台登陆
Copyright @ 2007 公司地址:柳州市东环路268号 邮编:545006 电话:15920389818 桂ICP备07006725号