PHP 無制限分類プログラム_PHP チュートリアル

WBOY
リリース: 2016-07-13 16:55:15
オリジナル
818 人が閲覧しました

無限分類の問題については、これまでに何度も紹介しましたが、多くの場合、それを実現するために PHP 再帰を使用します。今日紹介する無限分類は非常に簡単なので、必要な方は参考にしてください。

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

//////////////
//////無限に機密化されたデータベースの設計と例
//////////////
mysql> データベース db_kind;
を作成します クエリは OK、1 行が影響を受けました

mysql> db_kind; を使用します。 データベースが変更されました
mysql> テーブル tb_kind(
; -> id int が null ではない auto_increment 主キー、
->pid 整数、
-> パス varchar(200)
->);
クエリは OK、影響を受ける行は 0 つあります

mysql> tb_kind 値(null,"news",0,0);

クエリは OK、1 行が影響を受けました

mysql> tb_kind 値に挿入(null,"video",0,0);

クエリは OK、1 行が影響を受けました

mysql> tb_kind に挿入 value(null,"picture",0,0);

クエリは OK、1 行が影響を受けました

mysql> tb_kind 値に挿入(null,"ブログ",0,0);

クエリは OK、1 行が影響を受けました

mysql> tb_kind 値に挿入(null,"スポーツ ニュース",1,"0-1");

クエリは OK、1 行が影響を受けました

mysql> tb_kind 値に挿入(null,"エンタメニュース",1,"0-1");

クエリは OK、1 行が影響を受けました

mysql> tb_kind 値に挿入(null,"Financial News",1,"0-1");

クエリは OK、1 行が影響を受けました

mysql>select * from db_kind;

エラー 1146: テーブル 'db_kind.db_kind' が存在しません
mysql>select * from tb
_種類;
+-----+----------+-----+-----+
|ID パス |
+-----+----------+-----+-----+
| 0 | ニュース | | 2 | 0 | | 3 | 写真 0 | | 0 | 0 | | 5 | スポーツニュース 1 |
| 6 | エンターテイメントニュース 1 |
| 7 | 金融ニュース 1 |
+-----+----------+-----+-----+
7列セット
mysql> tb_kind に挿入 value(null,"バスケットボール ニュース",5,"0-1-5");
クエリは OK、1 行が影響を受けました

mysql> tb_kind 値に挿入(null,"フットボール ニュース",5,"0-1-5");
クエリは OK、1 行が影響を受けました

mysql>select * from tb_kind;

+-----+----------+-----+----------+

|ID パス |
+-----+----------+-----+----------+

| 0 | ニュース | | 2 | 0 | | 3 | 写真 0 | | 0 | 0 | | 5 | スポーツニュース 1 |

| 6 | エンターテイメントニュース 1 |
| 7 | 金融ニュース 1 |
| 8 | バスケットボールニュース 5 | | 9 | サッカーニュース 5 | +-----+----------+-----+----------+
9行セット

mysql> tb_kind 値に挿入(null,"NBA",8,"0-1-5-8");
クエリは OK、1 行が影響を受けました

mysql> tb_kind 値に挿入(null,"CBA",8,"0-1-5-8");
クエリは OK、1 行が影響を受けました

mysql>select * from tb_kind;
+-----+----------+-----+----------+
|ID パス |
+-----+----------+-----+----------+

| 0 | ニュース | | 2 | 0 | | 3 | 写真 0 | | 0 | 0 | | 5 | スポーツニュース 1 |

| 6 | エンターテイメントニュース 1 |
| 7 | 金融ニュース 1 |

| 8 | バスケットボールニュース 5 | | 9 | サッカーニュース 5 | | 10 | NBA 8 |

| 11 | 0-1-5-8 | +-----+----------+-----+----------+
11 行セット

mysql> select concat(path,"-",id) from tb_kind;
+---------------------+
| concat(パス,"-",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 行セット

mysql>select concat(path,"-",id) from tb_kind;
+---------------------+
| concat(パス,"-",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 行セット

mysql> select concat(path,"-",id) as abs from tb_kind order by abs.path;
エラー 1054 : 'order 句' に不明な列 'abs.path' があります
mysql> select concat(path,"-",id) as abs from tb_kind order by 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 行セット
mysql> select concat(path,"-",id) as,id,name,path abs from tb_kind order by abs;
エラー 1064 : SQL 構文にエラーがあります。 MySQL サーバーのバージョンに対応するマニュアルで、1 行目の「id,name,path abs from tb_kind order by abs」付近で使用する正しい構文を確認してください
mysql> concat(path,"-",id) を abs として選択します
tb_kind からの id、pname、パス abs、abs 順;
+------------+----+----------+-----------+
|腹筋 | ID |名前 |腹筋 |
+------------+----+----------+-----------+
| 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 行セット
mysql>

php处処理分类源码





無标题文档



$conn=mysql_connect("localhost","root","root");
mysql_select_db("db_kind");
mysql_query("セット名 utf8");
$sql="abspath による tb_kind の順序から abspath,id,pname,path として concat(path,'-',id) を選択します";
$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];
echo "
";
}
$str=str_repeat("=,10);
エコー $str;
$num=count(explode("-","0-1-5-8"))-1;
$num をエコーし​​ます。
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631691.html技術記事以前もまた常介绍关免分类这个问题,大多数情况我们都是利用php递归来实现,今天介绍的这篇無分类不要递归哦,方法很简单有需要...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート