加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP教程之怎样实现网站的无限分类

发布时间:2022-04-01 07:18:38 所属栏目:PHP教程 来源:互联网
导读:1.分析 我们在用 php 制作网站时,分类是很重要的,在分类下面又再分类这第二个分类称为次分类,而现在大多数网站分类只分到第三类: 第一分类(父分类)--第二分类(子分类)--第三分类(孙分类) 这种亲缘分类越多,程序和数据库的控制就越加的复杂困难.在同一级的
  1.分析
 
  我们在用 php 制作网站时,分类是很重要的,在分类下面又再分类这第二个分类称为次分类,而现在大多数网站分类只分到第三类:
 
  第一分类(父分类)-->第二分类(子分类)-->第三分类(孙分类)
 
  这种亲缘分类越多,程序和数据库的控制就越加的复杂困难.在同一级的分类处理和控制是非常的简单的,因为只需要一个数据库来记载这一级的分类就行了,如:系统,新闻等分类,在这一级上处理是很简单的,但对一个网站来说一级分类是不够的,还需要再分类,如:
 
  系统-->linux,windows
  新闻-->linux 新闻,windows 新闻
 
  这样分类就清晰些了,至少让人明白了,系统包括 linux 和 windows,而新闻包括 linux 新闻和 windows 新闻,为了让信息资料更加清晰,于是再继续分类:
 
  linux-->系统工具,内核,编程语言,开发工具
  ...
 
  分类到了第三级,信息资料的处理就更清晰了,也就是说为了很清晰地处理资料,分类越详细就越方便,这样即方便处理信息又方便网友目的明确地查找到需要的资料,但随着不断的细化分类,在程序和数据库的控制上就会越来越困难.
 
 
  这并不是夸张,因为很多人在数据库处理上就会采用一级分类建立一个数据库的做法,我当时也是采取这种方法处理分类的,因大多网站都是分到第三级,所以数据库里只需三个分类数据库来进行处理.但是需要继续向下分类时,这种做法的弊端就显露出来了,因为越往下分,工作量,程序量将会巨增..
 
  我要介绍的这种方法就是如何用一个分类数据库建立无限向下分级的分类方法,用过 windows 的读者都知道 windows 文件夹就可以建立无限分级的目录,可在目录下面继续建立目录,这样没完没了的分下去,Linux 的目录创建也有这种功能,我介绍的这个方法跟这种形式相同.
 
  2.数据库的规划
 
  ------------------------------------------------------------
  前面谈到分类的复杂性,因此如何规划数据库便成为了实现无限分类非常重要的一步.
 
  我曾介绍过论坛的数据库规划,不错论坛能够实现无限的跟接,无限分类便是这种形式的扩展,分类同样是这种子父的关联关系,所以分类的数据库就是如何确立明确这种子父关系,这里面有几个难点.
 
  1)如何处理各分类的信息存储;
  2)如何处理分类的亲缘关系;
  3)如何处理对信息的查询;
 
  亲缘关系的数据库处理与论坛的数据库处理类似,这里建个 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:信息建立的时间;
 
  3.程序控制
 
  实现无限分类这个功能中就属这一步最为复杂辛苦,首先看看程序需要完成的步骤:
 
  1)创建分类上传;
  2)创建信息上传;
  3)明确显示各分类及其之间的关系;
  4)处理查询功能;
  5)如何处理编辑和删除的功能;
 
  
  经过 explode( ) 函数处理,val 内的所有数字都分解到 rid 数组中了,要引用时只需打印:echo 'rid[0],rid[1],rid[2]..."; 就行了.explode( ) 函数在整个分类处理中起着非常重要的作用,好现在开始介绍无现分类的程序控制.

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读