设为首页 收藏本站
查看: 738|回复: 0

[经验分享] 简单实用的PHP无限分类源码分享

[复制链接]

尚未签到

发表于 2015-8-27 08:15:38 | 显示全部楼层 |阅读模式
  转载自:玉米串
  关于PHP的无限分类代码,网上已经有很多了,讲解的也很到位,在这里我分享一下我用着很顺手的一个。
  下面一段代码是创建相应数据库的sql代码:



  1 //////////////
  2 //////无限分类的数据库设计及样例
  3 //////////////
  4 mysql> create database db_kind;
  5 Query OK, 1 row affected
  6  
  7 mysql> use db_kind;
  8 Database changed
  9 mysql> create table tb_kind(
10     -> id int not null auto_increment primary key,
11     -> pid int,
12     -> path varchar(200)
13     -> );
14 Query OK, 0 rows affected
15  
16 mysql> insert into tb_kind values(null,"新闻",0,0);
17 Query OK, 1 row affected
18  
19 mysql> insert into tb_kind values(null,"视频",0,0);
20 Query OK, 1 row affected
21  
22 mysql> insert into tb_kind values(null,"图片",0,0);
23 Query OK, 1 row affected
24  
25 mysql> insert into tb_kind values(null,"博客",0,0);
26 Query OK, 1 row affected
27  
28 mysql> insert into tb_kind values(null,"体育新闻",1,"0-1");
29 Query OK, 1 row affected
30  
31 mysql> insert into tb_kind values(null,"娱乐新闻",1,"0-1");
32 Query OK, 1 row affected
33  
34 mysql> insert into tb_kind values(null,"财经新闻",1,"0-1");
35 Query OK, 1 row affected
36  
37 mysql> select * from db_kind;
38 ERROR 1146 : Table 'db_kind.db_kind' doesnot exist
39 mysql> select * from tb
40 _kind;
41 +----+----------+-----+------+
42 | id | pname    | pid | path |
43 +----+----------+-----+------+
44 |  1 | 新闻     |   0 | 0    |
45 |  2 | 视频     |   0 | 0    |
46 |  3 | 图片     |   0 | 0    |
47 |  4 | 博客     |   0 | 0    |
48 |  5 | 体育新闻 |   1 | 0-1  |
49 |  6 | 娱乐新闻 |   1 | 0-1  |
50 |  7 | 财经新闻 |   1 | 0-1  |
51 +----+----------+-----+------+
52 7 rows in set
53 mysql> insert into tb_kind values(null,"篮球新闻",5,"0-1-5");
54 Query OK, 1 row affected
55  
56 mysql> insert into tb_kind values(null,"足球新闻",5,"0-1-5");
57 Query OK, 1 row affected
58  
59 mysql> select * from tb_kind;
60 +----+----------+-----+-------+
61 | id | pname    | pid | path  |
62 +----+----------+-----+-------+
63 |  1 | 新闻     |   0 | 0     |
64 |  2 | 视频     |   0 | 0     |
65 |  3 | 图片     |   0 | 0     |
66 |  4 | 博客     |   0 | 0     |
67 |  5 | 体育新闻 |   1 | 0-1   |
68 |  6 | 娱乐新闻 |   1 | 0-1   |
69 |  7 | 财经新闻 |   1 | 0-1   |
70 |  8 | 篮球新闻 |   5 | 0-1-5 |
71 |  9 | 足球新闻 |   5 | 0-1-5 |
72 +----+----------+-----+-------+
73 9 rows in set
74  
75 mysql> insert into tb_kind values(null,"NBA",8,"0-1-5-8");
76 Query OK, 1 row affected
77  
78 mysql> insert into tb_kind values(null,"CBA",8,"0-1-5-8");
79 Query OK, 1 row affected
80  
81 mysql> select * from tb_kind;
82 +----+----------+-----+---------+
83 | id | pname    | pid | path    |
84 +----+----------+-----+---------+
85 |  1 | 新闻     |   0 | 0       |
86 |  2 | 视频     |   0 | 0       |
87 |  3 | 图片     |   0 | 0       |
88 |  4 | 博客     |   0 | 0       |
89 |  5 | 体育新闻 |   1 | 0-1     |
90 |  6 | 娱乐新闻 |   1 | 0-1     |
91 |  7 | 财经新闻 |   1 | 0-1     |
92 |  8 | 篮球新闻 |   5 | 0-1-5   |
93 |  9 | 足球新闻 |   5 | 0-1-5   |
94 | 10 | NBA      |   8 | 0-1-5-8 |
95 | 11 | CBA      |   8 | 0-1-5-8 |
96 +----+----------+-----+---------+
97 11 rows in set
98  
99 mysql> select concat(path,"-",id) from tb_kind;
100 +---------------------+
101 | concat(path,"-",id) |
102 +---------------------+
103 | 0-1                 |
104 | 0-2                 |
105 | 0-3                 |
106 | 0-4                 |
107 | 0-1-5               |
108 | 0-1-6               |
109 | 0-1-7               |
110 | 0-1-5-8             |
111 | 0-1-5-9             |
112 | 0-1-5-8-10          |
113 | 0-1-5-8-11          |
114 +---------------------+
115 11 rows in set
116  
117 mysql> select concat(path,"-",id) from tb_kind;
118 +---------------------+
119 | concat(path,"-",id) |
120 +---------------------+
121 | 0-1                 |
122 | 0-2                 |
123 | 0-3                 |
124 | 0-4                 |
125 | 0-1-5               |
126 | 0-1-6               |
127 | 0-1-7               |
128 | 0-1-5-8             |
129 | 0-1-5-9             |
130 | 0-1-5-8-10          |
131 | 0-1-5-8-11          |
132 +---------------------+
133 11 rows in set
134  
135 mysql> select concat(path,"-",id) as abs from tb_kind order by abs.path;
136 ERROR 1054 : Unknown column 'abs.path' in 'order clause'
137 mysql> select concat(path,"-",id) as abs from tb_kind order by abs
138 ;
139 +------------+
140 | abs        |
141 +------------+
142 | 0-1        |
143 | 0-1-5      |
144 | 0-1-5-8    |
145 | 0-1-5-8-10 |
146 | 0-1-5-8-11 |
147 | 0-1-5-9    |
148 | 0-1-6      |
149 | 0-1-7      |
150 | 0-2        |
151 | 0-3        |
152 | 0-4        |
153 +------------+
154 11 rows in set
155 mysql> select concat(path,"-",id) as,id,name,path abs from tb_kind order by abs;
156 ERROR 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id,name,path abs from tb_kind order by abs' at line 1
157 mysql> select concat(path,"-",id) as abs,
158 id,pname,path abs from tb_kind order by abs;
159 +------------+----+----------+---------+
160 | abs        | id | pname    | abs     |
161 +------------+----+----------+---------+
162 | 0-1        |  1 | 新闻     | 0       |
163 | 0-1-5      |  5 | 体育新闻 | 0-1     |
164 | 0-1-5-8    |  8 | 篮球新闻 | 0-1-5   |
165 | 0-1-5-8-10 | 10 | NBA      | 0-1-5-8 |
166 | 0-1-5-8-11 | 11 | CBA      | 0-1-5-8 |
167 | 0-1-5-9    |  9 | 足球新闻 | 0-1-5   |
168 | 0-1-6      |  6 | 娱乐新闻 | 0-1     |
169 | 0-1-7      |  7 | 财经新闻 | 0-1     |
170 | 0-2        |  2 | 视频     | 0       |
171 | 0-3        |  3 | 图片     | 0       |
172 | 0-4        |  4 | 博客     | 0       |
173 +------------+----+----------+---------+
174 11 rows in set
175 mysql>
  下面是php源文件:



1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <title>无标题文档</title>
6 </head>
7  
8 <body>
9 <!--显示结果
10 新闻
11     体育新闻
12         篮球新闻
13             NBA
14             CBA
15         足球新闻
16     娱乐新闻
17     财经新闻
18 视频
19 图片
20 博客
21 -->
22 <?
23 $conn=mysql_connect("localhost","root","root");
24 mysql_select_db("db_kind");
25 mysql_query("set names utf8");
26 $sql="select concat(path,'-',id) as abspath,id,pname,path from tb_kind order by abspath";
27 $rs=mysql_query($sql);
28 while($result=mysql_fetch_assoc($rs)){
29     $num=count(explode("-",$result[path]))-1;
30     $new_str=str_repeat("---",$num);
31     echo $new_str.$result[pname];
32     echo "<br>";
33 }
34 $str=str_repeat("=",10);
35 echo $str;
36 $num=count(explode("-","0-1-5-8"))-1;
37 echo $num;
38  
39  
40 ?>
41 </body>
42 </html>
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-104721-1-1.html 上篇帖子: PHP、JAVA、C#、Object-C 通用的DES加密 下篇帖子: 在windowsXP中如何配置php环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表