ホームページ  >  記事  >  バックエンド開発  >  PHPで無限分類を実装する3つの方法

PHPで無限分類を実装する3つの方法

怪我咯
怪我咯オリジナル
2017-07-07 09:54:123091ブラウズ

今日は、私が php の 無限分類メソッドをどのように学び、詳しく説明したかを共有します。 PHPを学習している友人は参考にしてください。

phpで無制限に分類するには大きく分けて3つの方法があります

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

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

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

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

1. データベース設計:


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

-- 
-- Table structure for table `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 ; 
-- 
-- Dumping data for table `category` 
-- 
INSERT INTO `category` (`id`, `catpath`, `name`) VALUES 
(1, '0', '网站首页'), 
(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' ); 
$sql = "select 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'] ) ) - 1 ); 
echo $space . $row [&#39;name&#39;] . &#39;<br>&#39;;*/ 
/** 
* 第二种展示方法 
*/ 
$space = str_repeat ( &#39;    &#39;, count ( explode ( &#39;-&#39;, $row [&#39;abspath&#39;] ) ) - 1 ); 
$option .= &#39;<option value="&#39; . $row [&#39;id&#39;] . &#39;">&#39; . $space . $row [&#39;name&#39;] . &#39;</option>&#39;; 
} 
echo &#39;<select name="opt">&#39; . $option . &#39;</select>&#39;;

上記のレンダリング:

ここで注意すべき重要な点がいくつかあります: 1. concat 関数はデータベース クエリで使用されます。フィールドで、何も理解できない場合は、Google で調べてください。

2. 2番目は主にphpのstr_repeatを使ってスペースを巧みに設定しています。

エラーがある場合は、chenghuiyong1987@gmail.com にメールを送信するか、メッセージを残してください

以上がPHPで無限分類を実装する3つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。