一、数据库设计:
--
-- 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无限分类实现的过程中,首先需要关注的是数据库设计环节。在设计用于无限分类的数据表时,通常会有一个用于存放分类信息的表,比如这里的`category`表。在`category`表中,至少需要有三个字段:`id`,`cat...
此外,还可以使用`CONCAT()`函数和`catpath`(即`path`字段)来创建一个包含父分类路径的完整路径,如`:id`。然后通过`explode()`函数拆分这个路径并计算元素数量来确定层级。例如: ```php $sql = "SELECT id, ...
php无限分类大致有三种方式, 1、数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类; 2、数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat。程序实现比较简单; 3...
无限级分类的实现目标是允许用户在一个分层的列表中创建、管理和展示分类,可以无限地拓展子分类层级。这通常体现在后台管理系统中,允许管理员能够方便地为网站内容添加栏目和子栏目,形成树状结构。 ### 主要代码...
这里使用了`concat`函数来生成一个字段`bpath`,该字段将`path`和`id`以'-'连接,然后使用`explode`函数计算`bpath`字段中'-'的数量,从而得到每个分类的子分类数量。`add`方法用于添加新的分类项。 模板`index....