找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1786|回复: 0
打印 上一主题 下一主题

比较简单实用的PHP无限分类源码分享(思路不错)

[复制链接]

2647

主题

2647

帖子

7881

积分

论坛元老

Rank: 8Rank: 8

积分
7881
跳转到指定楼层
楼主
发表于 2018-2-14 08:32:25 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

            下面一段代码是创建相应数据库的sql代码:
[U]复制代码[/U] 代码如下:
//////////////
   //////无限分类的数据库设计及样例
   //////////////
   mysql> create database db_kind;
   Query OK, 1 row affected
   mysql> use db_kind;
   Database changed
   mysql> create table tb_kind(
     -> id int not null auto_increment primary key,
     -> pid int,
     -> path varchar(200)
     -> );
Query OK, 0 rows affected
mysql> insert into tb_kind values(null,"新闻",0,0);
Query OK, 1 row affected
mysql> insert into tb_kind values(null,"视频",0,0);
Query OK, 1 row affected
mysql> insert into tb_kind values(null,"图片",0,0);
Query OK, 1 row affected
mysql> insert into tb_kind values(null,"博客",0,0);
Query OK, 1 row affected
mysql> insert into tb_kind values(null,"体育新闻",1,"0-1");
Query OK, 1 row affected
mysql> insert into tb_kind values(null,"娱乐新闻",1,"0-1");
Query OK, 1 row affected
mysql> insert into tb_kind values(null,"财经新闻",1,"0-1");
Query OK, 1 row affected
mysql> select * from db_kind;
ERROR 1146 : Table 'db_kind.db_kind' doesnot exist
mysql> select * from tb
_kind;
+----+----------+-----+------+
| id | pname    | pid | path |
+----+----------+-----+------+
|  1 | 新闻     |   0 | 0    |
|  2 | 视频     |   0 | 0    |
|  3 | 图片     |   0 | 0    |
|  4 | 博客     |   0 | 0    |
|  5 | 体育新闻 |   1 | 0-1  |
|  6 | 娱乐新闻 |   1 | 0-1  |
|  7 | 财经新闻 |   1 | 0-1  |
+----+----------+-----+------+
7 rows in set
mysql> insert into tb_kind values(null,"篮球新闻",5,"0-1-5");
Query OK, 1 row affected
mysql> insert into tb_kind values(null,"足球新闻",5,"0-1-5");
Query OK, 1 row affected
mysql> select * from tb_kind;
+----+----------+-----+-------+
| id | pname    | pid | path  |
+----+----------+-----+-------+
|  1 | 新闻     |   0 | 0     |
|  2 | 视频     |   0 | 0     |
|  3 | 图片     |   0 | 0     |
|  4 | 博客     |   0 | 0     |
|  5 | 体育新闻 |   1 | 0-1   |
|  6 | 娱乐新闻 |   1 | 0-1   |
|  7 | 财经新闻 |   1 | 0-1   |
|  8 | 篮球新闻 |   5 | 0-1-5 |
|  9 | 足球新闻 |   5 | 0-1-5 |
+----+----------+-----+-------+
9 rows in set
mysql> insert into tb_kind values(null,"NBA",8,"0-1-5-8");
Query OK, 1 row affected
mysql> insert into tb_kind values(null,"CBA",8,"0-1-5-8");
Query OK, 1 row affected
mysql> select * from tb_kind;
+----+----------+-----+---------+
| id | pname    | pid | path    |
+----+----------+-----+---------+
|  1 | 新闻     |   0 | 0       |
|  2 | 视频     |   0 | 0       |
|  3 | 图片     |   0 | 0       |
|  4 | 博客     |   0 | 0       |
|  5 | 体育新闻 |   1 | 0-1     |
|  6 | 娱乐新闻 |   1 | 0-1     |
|  7 | 财经新闻 |   1 | 0-1     |
|  8 | 篮球新闻 |   5 | 0-1-5   |
|  9 | 足球新闻 |   5 | 0-1-5   |
| 10 | NBA      |   8 | 0-1-5-8 |
| 11 | CBA      |   8 | 0-1-5-8 |
+----+----------+-----+---------+
11 rows in set
mysql> select concat(path,"-",id) from tb_kind;
+---------------------+
| concat(path,"-",id) |
+---------------------+
| 0-1                 |
| 0-2                 |
| 0-3                 |
| 0-4                 |
| 0-1-5               |
| 0-1-6               |
| 0-1-7               |
| 0-1-5-8             |
| 0-1-5-9             |
| 0-1-5-8-10          |
| 0-1-5-8-11          |
+---------------------+
11 rows in set
mysql> select concat(path,"-",id) from tb_kind;
+---------------------+
| concat(path,"-",id) |
+---------------------+
| 0-1                 |
| 0-2                 |
| 0-3                 |
| 0-4                 |
| 0-1-5               |
| 0-1-6               |
| 0-1-7               |
| 0-1-5-8             |
| 0-1-5-9             |
| 0-1-5-8-10          |
| 0-1-5-8-11          |
+---------------------+
11 rows in set
mysql> select concat(path,"-",id) as abs from tb_kind order by abs.path;
ERROR 1054 : Unknown column 'abs.path' in 'order clause'
mysql> select concat(path,"-",id) as abs from tb_kind order by abs
+------------+
| abs        |
+------------+
| 0-1        |
| 0-1-5      |
| 0-1-5-8    |
| 0-1-5-8-10 |
| 0-1-5-8-11 |
| 0-1-5-9    |
| 0-1-6      |
| 0-1-7      |
| 0-2        |
| 0-3        |
| 0-4        |
+------------+
11 rows in set
mysql> select concat(path,"-",id) as,id,name,path abs from tb_kind order by abs;
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
mysql> select concat(path,"-",id) as abs,
id,pname,path abs from tb_kind order by abs;
+------------+----+----------+---------+
| abs        | id | pname    | abs     |
+------------+----+----------+---------+
| 0-1        |  1 | 新闻     | 0       |
| 0-1-5      |  5 | 体育新闻 | 0-1     |
| 0-1-5-8    |  8 | 篮球新闻 | 0-1-5   |
| 0-1-5-8-10 | 10 | NBA      | 0-1-5-8 |
| 0-1-5-8-11 | 11 | CBA      | 0-1-5-8 |
| 0-1-5-9    |  9 | 足球新闻 | 0-1-5   |
| 0-1-6      |  6 | 娱乐新闻 | 0-1     |
| 0-1-7      |  7 | 财经新闻 | 0-1     |
| 0-2        |  2 | 视频     | 0       |
| 0-3        |  3 | 图片     | 0       |
| 0-4        |  4 | 博客     | 0       |
+------------+----+----------+---------+
11 rows in set
mysql>
下面是php源文件:
[U]复制代码[/U] 代码如下:




无标题文档







上面的代码中其实中间有空格的输入效果还是非常不错的,请大家本地测试。因编辑器问题导致排版混乱。
            
            
您可能感兴趣的文章:
  • PHP数组传递是值传递而非引用传递概念纠正
  • PHP无限分类(树形类)的深入分析
  • 利用php递归实现无限分类 格式化数组的详解
  • php无限分类且支持输出树状图的详细介绍
  • 解析thinkphp的左右值无限分类
  • php函数间的参数传递(值传递/引用传递)
  • PHP无限分类(树形类)
  • php递归方法实现无限分类实例代码
  • PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
  • PHP如何通过传引用的思想实现无限分类(代码简单)
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端