分组应该怎么做?? 怎么写SQL语句 用PHP怎么实现 就是我上面这个图数据都分组了的点+ 可以弹出下面的分类点- 可以收缩相同的都分到不同的组里的 而且还有标题这些问下这个有PHP怎么实现这种布局求方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可有几种实现方式,我讲下思路:一、可先按一级菜单进行group by,取出二级菜单数,一级菜单的id及名称,再根据一级菜单的id取二级菜单列表,这种方法对数据库交互比较多二、可一次性把所有的菜单都取出来,然后用php进行处理(比如递归),这种只需访问数据库一次;比如$sorts=array(array('id'=>1,'pid'=>0,'name'=>'分类'), array('id'=>2,'pid'=>4,'name'=>'分类'), array('id'=>3,'pid'=>0,'name'=>'分类'), array('id'=>4,'pid'=>5,'name'=>'分类'), array('id'=>5,'pid'=>1,'name'=>'分类'), array('id'=>6,'pid'=>0,'name'=>'分类'), array('id'=>7,'pid'=>10,'name'=>'分类'), array('id'=>8,'pid'=>3,'name'=>'分类'), array('id'=>9,'pid'=>2,'name'=>'分类'), array('id'=>10,'pid'=>3,'name'=>'分类'), array('id'=>11,'pid'=>1,'name'=>'分类'));//对分类进行处理输出function get_sort_list($pid,$level){ global $sorts; foreach($sorts as $key=>$sort){ if($sort['pid']==$pid){//如果当前分类的pid等于要取的pid for($i=0;$i<$level;$i++){ echo "----"; } echo $sort['name']."<br/>"; get_sort_list($sort['id'],$level+1); } }}get_sort_list(0,0); 发布一款支持多种数据库的开源CMS php hash 数组问题!! 升双星!散分 面试求祝福 windows下PHP的奇怪的问题 关于redirect的问题 学习遇到问题了,请过来人给予指点 php中如何持久化对象 现在还能做时时彩吗 ? 购买彩票的接口吗? win64操作系统下运行Apache2.2-win32有多大的弊端? curl post 带cookies 提交 本地测试通过 放到服务器上就不行了。。 关于discuz编程嵌套循环思路的问题 求助:应用里 通信总是正在连接...
一、可先按一级菜单进行group by,取出二级菜单数,一级菜单的id及名称,再根据一级菜单的id取二级菜单列表,这种方法对数据库交互比较多
二、可一次性把所有的菜单都取出来,然后用php进行处理(比如递归),这种只需访问数据库一次;比如
$sorts=array(array('id'=>1,'pid'=>0,'name'=>'分类'),
array('id'=>2,'pid'=>4,'name'=>'分类'),
array('id'=>3,'pid'=>0,'name'=>'分类'),
array('id'=>4,'pid'=>5,'name'=>'分类'),
array('id'=>5,'pid'=>1,'name'=>'分类'),
array('id'=>6,'pid'=>0,'name'=>'分类'),
array('id'=>7,'pid'=>10,'name'=>'分类'),
array('id'=>8,'pid'=>3,'name'=>'分类'),
array('id'=>9,'pid'=>2,'name'=>'分类'),
array('id'=>10,'pid'=>3,'name'=>'分类'),
array('id'=>11,'pid'=>1,'name'=>'分类'));
//对分类进行处理输出
function get_sort_list($pid,$level){
global $sorts;
foreach($sorts as $key=>$sort){
if($sort['pid']==$pid){//如果当前分类的pid等于要取的pid
for($i=0;$i<$level;$i++){
echo "----";
}
echo $sort['name']."<br/>";
get_sort_list($sort['id'],$level+1);
}
}
}
get_sort_list(0,0);