gpt4 book ai didi

php - 动态下拉菜单和子菜单 php mysql

转载 作者:行者123 更新时间:2023-11-29 23:38:56 26 4
gpt4 key购买 nike

我有一个需要从数据库动态创建的菜单。需要有菜单和子菜单

例如(我想要什么):

<ul class="dropdown">
<li><a href="#">Link 1</a> </li>
<li><a href="#">Link 2</a> </li>
<li><a href="#">Link 3</a> </li>
<li><a href="#">Link 4</a>
<ul class="sub_menu">
<li><a href="#">Link 4 - 1</a></li>
<li><a href="#">Link 4 - 2</a></li>
<li><a href="#">Link 4 - 3</a></li>
</ul>
</li>
<li><a href="#">Link 5</a></li>
<li><a href="#">Link 6</a> </li>
</ul>

下面是我用于菜单的代码,使用我也想要子菜单的功能

function listMenu(){
$ans = $this->select("cat_id,cat_name","s_category","1");
if(is_array($ans)){
foreach($ans as $val){
echo
"<li><a href=\"post-summary.php?cid=$val[0]\" >$val[1]</a></li>";
}
}
else{
echo "";
}
}

数据库如下:-

CREATE TABLE IF NOT EXISTS `s_category` (
`cat_id` int(11) NOT NULL AUTO_INCREMENT,
`cat_name` varchar(15) NOT NULL,
`cat_uid` int(2) NOT NULL,
`cat_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`cat_parent` int(11) DEFAULT '0',
`cat_sort` int(11) DEFAULT NULL,
`cat_delete` int(1) DEFAULT '0',
PRIMARY KEY (`cat_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;

最佳答案

您需要有一列,让我们在 s_category 表中将其命名为 parentId

其中的示例值:

catId,catName,parentId
1,Vehicles,null
2,Planes,null
3,Cars,1
4,Bicycles,1

所以你的结构将是这样的:

- Vehicles
- Cars
- Bicycles
- Planes

您需要获取如下数据(被视为伪代码):

$topLevelItems = (select catId, catName from s_category where parentId is null)
foreach($topLevelItems as $item) {
echo '<a href="...">$item["catName"]</a>';
$subItems = (select catId, catName from s_category where parentId=$item['catId'])
foreach($subItems as $subItem) {
echo '<a href="...">$subItem["catName"]</a>';
}
}

您需要重写 SQL 部分以匹配您的情况。如果你只有一个内在层次,例如:没有子菜单。如果您计划使用子子菜单,您将需要递归函数。

关于php - 动态下拉菜单和子菜单 php mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26277877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com