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