ホームページ > php教程 > php手册 > PHP での非関数の再帰呼び出しを無限に分類する 3 つの方法。

PHP での非関数の再帰呼び出しを無限に分類する 3 つの方法。

WBOY
リリース: 2016-06-13 12:06:13
オリジナル
1556 人が閲覧しました

PHP を無制限に分類するには、大きく 3 つの方法があります。

1. データベースは親クラス ID を設定することで一意のインデックスを作成し、関数の再帰呼び出しを使用して無限の分類を実現します。

2. データベース設計は特定の形式で整理され、mysql を使用して主要な関数 concat をクエリします。プログラムの実装は比較的単純です。

3. 3 番目のタイプについてはよくわかりません。アルゴリズムとデータ構造が配置に使用されているようです。

今日は主に 2 番目の方法について説明します。最初は情報が多く、本当に理解するのが難しかったです。でも、ようやく気づいたので、この記事が皆さんのお役に立てればと思い、エッセイを書きました。

1. データベース設計:


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

--
-- テーブル ` のテーブル構造category`
--
CREATE TABLE IF NOT EXISTS `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`catpath` varchar(255) DEFAULT NULL,
` name` varchar (255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
--
-- テーブル `category のデータをダンプしています`
--
INSERT INTO `category` (`id`, `catpath`, `name`) VALUES
(1, '0', 'Homepage'),
(2, ' 0-1', 'Linux OS')、
(3, '0-1', 'Apache サーバー')、
(4, '0-1', 'MySQL データベース')、
(5 , '0-1', 'PHP スクリプト言語')、
(6, '0-1-2', 'Linux システム チュートリアル')、
(7, '0-1-2' 、' Linux ネットワーク テクノロジー')、
(8、'0-1-2'、'Linux セキュリティの基礎')、
(9、'0-1-2-7'、'Linux LAMP') ,
(10, '0-1-3-10', 'apache Server');

ここで catpath の - リンク記号が固定されていないことを説明します。 、; などの特殊記号。

2. PHP コードの実装:

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

$conn = mysql_connect ( 'localhost', 'root', '' );
mysql_select_db ( 'test', $conn );
mysql_query ( 'set names UTF8' ); id,concat (catpath,'-',id) as abspath,name from category order by abspath";
$query = mysql_query ( $sql );
while ( $row = mysql_fetch_array ( $query ) ) {
/**
※最初の表示方法
*/
/*$space = str_repeat ( ' ', count (explode ( '-', $row ['abspath'] ) ) -
echo $ ); space . $ row ['name'] . '
';*/
/**
※第二の表示方法
*/
$space = str_repeat ( ', count (explode ( '-', $ row [' abspath'] ) ) - 1 );
$option .= '';
'