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:
-- -- 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');
2. PHP code implementation:
$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 ['name'] . '<br>';*/ /** * 第二种展示方法 */ $space = str_repeat ( ' ', count ( explode ( '-', $row ['abspath'] ) ) - 1 ); $option .= '<option value="' . $row ['id'] . '">' . $space . $row ['name'] . '</option>'; } echo '<select name="opt">' . $option . '</select>';
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!