php实现无限极分类
2016-10-28 00:00
495 查看
/** * 无限分类 * @param [type] $model 一个模型对象 * @param integer $pid 上级ID * @param array &$categorys 一个保存结果的数组 * @param integer $spac 空格循环次数 * @return [type] array */ function data2array($model = null , $pid = 0 , &$categorys = array() , $spac = 0){ $spac = $spac + 2 ; //得到sql语句 $sql = $model->order('sort desc,id asc')->where(array('pid' => $pid))->field('*')->getSql(); //执行这条sql语句并返回资源类型 $query = $model->execute_resource($sql); //遍历 while($rows = $query->fetch_assoc()){ $rows['name'] = str_repeat(' ',$spac).'|--'.$rows['name']; $categorys[] = $rows; data2array($model , $rows['id'] , $categorys , $spac); } return $categorys; } /** * 显示成html样式 * @param [type] $model 一个模型对象 * @param integer $pid 上级ID * @param integer $selected select的默认选中值 * @param [type] $selectName select的名称 * @param boolean $is_top 是否顶级菜单 * @return [type] string */ function displayCate($model = null , $pid = 0 , $selected = 0 , $selectName = null , $is_top = true){ $result = data2array($model , $pid); $str .= '<select class="form-control" name="' . $selectName . '">'; if($is_top){ $str .= '<option value="0">顶级菜单</option>'; } foreach($result as $key => $value){ /*重置!*/ $selectedstr = ''; if($value['id'] == $selected) $selectedstr = 'selected'; $str .= '<option '.$selectedstr.' value="'.$value['id'].'">'.$value['name'].'</option>'; } $str .= '</select>'; return $str; } //使用 displayCate(M('Channel') , 0 , 0 , 'pid');
相关文章推荐
- PHP连接MYSQL实现简单的无限极分类
- PHP 实现无限极栏目分类
- php实现无限极分类
- PHP无限极分类函数的实现方法详解
- 无限极分类php实现—查子孙树、家谱树
- php无限极分类递归排序实现方法
- php实现smarty模板无限极分类的方法
- php无限极分类实现方法
- php不使用递归实现无限极分类
- PHP实现菜单无限极分类
- PHP实现无限极分类图文教程
- php实现无限极分类
- php通过前序遍历树实现无需递归的无限极分类
- php只查询一次数据库分类表,实现无限极分类
- php无限极分类实现的两种解决方法
- PHP实现无限极分类图文教程
- php 无限极分类实现
- PHP递归实现无限极分类
- php+mysql实现的无限极分类
- php+mysql实现的无限极分类