用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2764|回复: 3
收起左侧

[HELP] CI中如何实现嵌套循环

[复制链接]
发表于 2011-11-21 12:40:31 | 显示全部楼层 |阅读模式
希望得到的结果如下:
类一
---类一子类
类二
---类二子类
我的模型是这样写的:
function select(){
     $this->db->where('fid','0');
     $category = $this->db->get('category');
     foreach($category->result_array()  as $k => $v){
          $this->db->where('fid',$v['cid']);
          $category[$k]['category'] = $this->db->get('category');
     }
    return $category->result_array();
}
我的数据库中表的结构
cid                 fid              name
1                    0                类一
2                    1                类一子类
3                    0                类二
4                    3                类二子类

求高手帮帮小弟,怎样得到小弟想要的效果?
发表于 2011-11-21 13:15:06 | 显示全部楼层
无限分类,你是打算实现这个吧。

在设置一个字段,来存路径,比如
cid                 fid              name            path
1                    0                类一             0-1
2                    1                类一子类       0-1-2
3                    0                类二             0-3
4                    3                类二子类       0-3-4
子类path 等于 父类path 链接上 子类id
然后在order  by path 就能直接得到 结构了。不必嵌套循环,运行效率不好。
现在主流一般都是这么分的

 楼主| 发表于 2011-11-22 07:55:02 | 显示全部楼层
谢谢!但如果我想使用嵌套循环,那应该怎样写呢?毕竟以后可能有需要使用循环的地方呀!望路过的朋友教教小弟!小弟先在这里谢谢了!
发表于 2011-11-22 09:54:18 | 显示全部楼层
无限子类的问题,在文章系统,商品系统里很长见的,可以用递归调用,尽管效率不是很高,但也没有其它更好的方法。

本版积分规则