Home >Backend Development >PHP Tutorial > PHP 运用concat的无限分类

PHP 运用concat的无限分类

WBOY
WBOYOriginal
2016-06-13 13:10:43827browse

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

?

?

?

关联:

简单的无限分级类 category, menus, jquery tree view?

?

?

?

?

?

?

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