ソースコード 比較的シンプルで実用的なPHP無制限分類ソースコード共有のアイデアは良いです

WBOY
リリース: 2016-07-29 08:46:56
オリジナル
1096 人が閲覧しました

次のコードは、対応するデータベースを作成する SQL コードです:

コードをコピーします コードは次のとおりです:


//////////////
//////無制限分类的データ库设计及样例
//////////////
mysql> create Database db_kind;
クエリ OK、1 行が影響を受けました
mysql> use db_kind;
データベースが変更されました
mysql> create table tb_kind(
-> id int not null auto_increment Primary key,
-> pid int,
-> path varchar(200)
-> );
クエリ OK、影響を受ける行は 0 件
mysql> insert into tb_kindvalues(null,"新闻",0,0);
クエリ OK、1 行が影響を受けます
mysql> insert into tb_kindvalues(null,"video",0,0);
クエリ OK、1 行が影響を受けます
mysql> insert into tb_kindvalues(null,"图片",0,0);
クエリ OK、1 行が影響を受けます
mysql> insert into tb_kindvalues(null,"博客",0,0);
クエリ OK、1 行が影響を受けます
mysql> insert into tb_kindvalues(null,"体育新闻",1,"0-1");
クエリ OK、1 行が影響を受けます
mysql> insert into tb_kindvalues(null,"娱乐新闻",1,"0-1");
クエリ OK、1 行が影響を受けます
mysql> insert into tb_kindvalues(null,"财经新闻",1,"0-1");
クエリ OK、1 行が影響を受けます
mysql> select * from db_kind;
エラー 1146 : テーブル 'db_kind.db_kind' が存在しません
mysql> select * from tb
_kind;
+----+----------+-----+------+
| ID | pname |ピッド |パス |
+------+----------+-----+------+
|  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 行
mysql> insert into tb_kindvalues(null,"篮球新闻",5,"0-1-5");
クエリ OK、1 行が影響を受けます
mysql> insert into tb_kindvalues(null,"足球新闻",5,"0-1-5");
クエリ OK、1 行が影響を受けます
mysql> select * from tb_kind;
+----+----------+-----+-------+
| ID | pname |ピッド |パス |
+----+----------+-----+-------+
|  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 行セット
mysql> insert into tb_kindvalues(null,"NBA",8,"0-1-5-8");
クエリ OK、1 行が影響を受けます
mysql> insert into tb_kindvalues(null,"CBA",8,"0-1-5-8");
クエリ OK、1 行が影響を受けます
mysql> select * from tb_kind;
+----+----------+-----+---------+
| ID | pname |ピッド |パス |
+----+----------+-----+---------+
|  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 行
 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 | ビデオ 0 | 0-4 | --+----------+-----------+
11 rows in set
mysql>


以下は php ソース ファイルです:



コードをコピー

コードは次のとおりです:


無題ドキュメント


$c
mysql_select_db("set names utf8");
$sql="select concat(path,'-) ' ,id) as abspath,id,pname,path from tb_kind order by abspath";
$rs=mysql_query($sql);
while($result=mysql_fetch_assoc($rs)){
$num=count(explode( " -",$result[パス]))-1;
$new_str=str_repeat("---",$num);
echo $new_str.$result[pname];
}
$str=str_repeat("=,10);
$num=count(explode("-","0-1-5-8"))-1; ;
?>



上記のコードでは、実際にローカルでテストしてください。エディターの問題により、組版が混乱します。
以上、ソースコードを紹介しましたが、比較的シンプルで実用的なPHP無制限分類のソースコードを含めて、PHPチュートリアルに興味のある友人に役立てていただければ幸いです。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート