php无限分类使用concat如何实现 |
一、数据库设计 -- -- Table structure for table `category` -- CREATE TABLE `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` VALUES (1, 0, 网站首页); INSERT INTO `category` VALUES (2, 0-1, Linux OS); INSERT INTO `category` VALUES (3, 0-1, Apache服务器); INSERT INTO `category` VALUES (4, 0-1, MySQL数据库); INSERT INTO `category` VALUES (5, 0-1, PHP脚本语言); INSERT INTO `category` VALUES (6, 0-1-2, Linux 系统教程); INSERT INTO `category` VALUES (7, 0-1-2, Linux 网络技术); INSERT INTO `category` VALUES (8, 0-1-2, Linux 安全基础); INSERT INTO `category` VALUES (9, 0-1-2-7, Linux LAMP); INSERT INTO `category` VALUES (10, 0-1-3-10, apache Server); 这里说明下,catpath的-链接符号不是固定的,可以选择,;等特殊符号 。 二、PHP代码实现 <? $conn = mysql_connect ( localhost, root, 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>; ?> MySQL concat函数可以连接一个或者多个字符串 select concat(颜,培,攀) select `id`,`name`,concat(`id`,-,`name`) as iname 以上就是本文的全部内容,介绍了php使用concat实现无线分类,希望对大家的学习有所帮助 。 |