PHP中的菜单子菜单下拉
使用'categorytrere()'功能在php中构建菜单子菜单下拉列表。
<select name="category">
<?php categoryTree(); ?>
</select>
数据库配置(dbconfig.php)
'dbconfig.php'文件用于连接和选择数据库。
指定数据库主机('$dbhost'),用户名('$dbusern'),密码('$dbpassword'),以及根据MySQL凭据的名称('$dbname')。
<?php
//Database configuration
$dbHost = "localhost";
$dbUsername = "root";
$dbPassword = "root";
$dbName = "onitroad";
//Create database connection
$db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
//Check connection
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}
?>
PHP递归函数生成父树/儿童树
'categorytree()'函数使用php生成n级别类别子类别树。
它将为类别树创建下拉选项。
- '$parent_id' - 可选。指定父ID以获取此父类别的子类别。
- '$sub_mark' - 可选。标记将在子类别名称的开头添加。
<?php
//Include the database configuration file
require 'dbConfig.php';
function categoryTree($parent_id = 0, $sub_mark = ''){
global $db;
$query = $db->query("SELECT * FROM categories WHERE parent_id = $parent_id ORDER BY name ASC");
if($query->num_rows > 0){
while($row = $query->fetch_assoc()){
echo '<option value="'.$row['id'].'">'.$sub_mark.$row['name'].'</option>';
categoryTree($row['id'], $sub_mark.'---');
}
}
}
创建数据库表
要存储类别和子类别,需要在数据库中创建一个表。
以下SQL在MySQL数据库中创建一个“类别”表。
CREATE TABLE `categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(11) NOT NULL DEFAULT '0',
`name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
`status` enum('1','0') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1' COMMENT '1:Active, 0:Inactive',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
“parent_id”列指定类别是父级或者子。
如果parent_id为0,则它将是父类别。
否则,它将是一个子类别,ID是此类别的父级。
日期:2020-06-02 22:15:28 来源:oir作者:oir
