php菜单递归(php递归函数桃子一天吃一半)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
今天给各位分享php菜单递归的知识,其中也会对php递归函数桃子一天吃一半进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
- 1、PHP递归树形菜单
- 2、php 几种常用的递归 无限极分类
- 3、php 递归问题
- 4、求PHP 递归的写法
PHP递归树形菜单
可以参考以下代码,但需要把你自己的数据库链接,表等改一下就可以了
html
head
link href='style.css' rel=stylesheet
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
script language="JavaScript" src="TreeMenu.js"/script
/head
body
?php
//基本变量设置
$GLOBALS["ID"] =1; //用来跟踪下拉菜单的ID号
$layer=1; //用来跟踪当前菜单的级数
//连接数据库
$Con=mysql_connect("localhost","root","1234");
mysql_select_db("wiki");
//提取一级菜单
$sql="SELECT * FROM wiki where pid=0";
$result=mysql_query($sql,$Con);
//如果一级菜单存在则开始菜单的显示
if(mysql_num_rows($result)0) ShowTreeMenu($Con,$result,$layer,$ID);
//=============================================
//显示树型菜单函数 ShowTreeMenu($con,$result,$layer)
//$con:数据库连接
//$result:需要显示的菜单记录集
//layer:需要显示的菜单的级数
//=============================================
function ShowTreeMenu($Con,$result,$layer)
{
//取得需要显示的菜单的项目数
$numrows=mysql_num_rows($result);
//开始显示菜单,每个子菜单都用一个表格来表示
echo "table cellpadding='0' cellspacing='0' border='0'";
for($rows=0;$rows$numrows;$rows++)
{
//将当前菜单项目的内容导入数组
$menu=mysql_fetch_array($result);
//提取菜单项目的子菜单记录集
$sql="select * from wiki where pid=$menu[cid]";
$result_sub=mysql_query($sql,$Con);
echo "tr";
//如果该菜单项目有子菜单,则添加JavaScript onClick语句
if(mysql_num_rows($result_sub)0)
{
echo "td width='20'img src='folder.gif' border='0'/td";
echo "td class='Menu' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].");'";
}
else
{
echo "td width='20'img src='file.gif' border='0'/td";
echo "td class='Menu'";
}
//如果该菜单项目没有子菜单,并指定了超级连接地址,则指定为超级连接,
//否则只显示菜单名称
//if($menu[url]!="")
//echo "a href='$menu[cid]'$menu[name]/a";
//else
echo $menu['name'];
echo "
/td
/tr
";
//如果该菜单项目有子菜单,则显示子菜单
if(mysql_num_rows($result_sub)0)
{
//指定该子菜单的ID和style,以便和onClick语句相对应
echo "tr id=Menu".$GLOBALS["ID"]++." style='display:none'";
echo "td width='20' /td";
echo "td";
//将级数加1
$layer++;
//递归调用ShowTreeMenu()函数,生成子菜单
ShowTreeMenu($Con,$result_sub,$layer);
//子菜单处理完成,返回到递归的上一层,将级数减1
$layer--;
echo "/td/tr";
}
//继续显示下一个菜单项目
}
echo "/table";
}
?
/body
/html
php 几种常用的递归 无限极分类
/**
* 递归实现无限极分类
* @param $array 分类数据
* @param $pid 父ID
* @param $level 分类级别
* @return $list 分好类的数组 直接遍历即可 $level可以用来遍历缩进
*/
function getTree($array, $pid =0, $level = 0){
//声明静态数组,避免递归调用时,多次声明导致数组覆盖
static $list = []; foreach ($array as $key = $value){ //第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点
if ($value['pid'] == $pid){ //父节点为根节点的节点,级别为0,也就是第一级
$value['level'] = $level; //把数组放到list中
$list[] = $value; //把这个节点从数组中移除,减少后续递归消耗
unset($array[$key]); //开始递归,查找父ID为该节点ID的节点,级别则为原级别+1
getTree($array, $value['id'], $level+1);
}
}

php 递归问题
第一,没有选择数据库,在连接数据库后添加mysql_select_db("数据库名");
第二、我感觉不代码不全吧,因为我拷下来看了一下,少一},当然上面那个没少,补充的少了。
第三、还有没看出这个$ii是干什么用的。
第四、没感觉$selec=0与不等于0输出有什么不同。
第五、以后最好是把html代码与程序分开写。
因为不知道需求,只能根据你的程序简单修改如下:
?php
function TreeMenu($selec) {
$Conn=mysql_connect("localhost","kk","kk123");
mysql_select_db("数据库名");
$ii=1;
$sql="select * from tvmenu where bid=".$selec;
$result=mysql_query($sql,$Conn);
$str = "";
while($row =mysql_fetch_array($result)) {
if($selec=0) {
$str = 'option value="'.$row['id'].'"'.$row['name'].'/option ';
}else {
$str = 'option value="'.$row['id'].'"'.$row['name'].'/option ';
}
echo $str;
$ii++;
TreeMenu($row['id']);
$ii--;
}
}
?
select name="bid" id="bid"
?php
TreeMenu(0);
?
/select
求PHP 递归的写法
function style($id,$i){
static $i;
$sql="select * from sort where id=".$id;
$rs1=mysql_query($sql);
while($rsd=mysql_fetch_array($rs1)){
style($rsd['type_id'],++$i);
}
return $i;
}
关于php菜单递归和php递归函数桃子一天吃一半的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
