zj225 发表于 2011-11-21 12:40:31

CI中如何实现嵌套循环

希望得到的结果如下:
类一
---类一子类
类二
---类二子类
我的模型是这样写的:
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
然后在orderby path 就能直接得到 结构了。不必嵌套循环,运行效率不好。
现在主流一般都是这么分的

zj225 发表于 2011-11-22 07:55:02

谢谢!但如果我想使用嵌套循环,那应该怎样写呢?毕竟以后可能有需要使用循环的地方呀!望路过的朋友教教小弟!小弟先在这里谢谢了!

meditator 发表于 2011-11-22 09:54:18

无限子类的问题,在文章系统,商品系统里很长见的,可以用递归调用,尽管效率不是很高,但也没有其它更好的方法。
页: [1]
查看完整版本: CI中如何实现嵌套循环