Home  >  Article  >  Backend Development  >  Three ways to implement infinite classification in php

Three ways to implement infinite classification in php

怪我咯
怪我咯Original
2017-07-07 09:54:123130browse

Today I will share with you how to learn in detail the infinite classification method in php. Friends who are learning PHP can refer to it.

There are roughly three methods of unlimited classification in php,

1. The database performs unique indexing by setting the parent class ID, and thenuses recursive calls of functions to achieve unlimited classification;

 2. The database design is arranged in a specific format, and then uses mysql to query the key function: concat. The program implementation is relatively simple;

3. I don’t know much about the third type. It seems that algorithms and data structures are used for arrangement.

Today I will mainly share the second method. I found a lot of information at the beginning and it was indeed difficult to understand. But I finally figured it out, so I wrote down an essay, hoping that this article can help everyone.

1. Database design: 


## The code is as follows:

-- 
-- 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');

Here is the description of catpath The - link symbol is not fixed, you can choose special symbols such as;


2. PHP code implementation:

The code is as follows:

$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;;

Above rendering:

  

There are several key points to note here:

1. The concat function is used in the database query field. If you don’t understand, you can google it.
2. The second place mainly uses str_repeat in php to cleverly set spaces.
If there are any errors, please email: chenghuiyong1987@gmail.com or leave a message

The above is the detailed content of Three ways to implement infinite classification in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn