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

[已解决] 请问我这样的遍历类应该怎么应用在ci呢?

[复制链接]
发表于 2011-4-18 23:28:38 | 显示全部楼层 |阅读模式
其实就是利用里面的star方法和show方法在循环。但是发现ci里面的模型不能直接这样用?

以前是用while($row = mysql_fetch_array($res))作循环的,
但是现在用while ($row = $res->row_array()) 好像无效。怎么办呢?



PHP复制代码
 
$tree = new tree();
$a = $tree->star();
print_r($a);
 
 
 
class tree {
 function star()
 {
  $this->db = $conn;
  $sql = "select * from tvmenu where bid=0";
  $this->res = mysql_query($sql, $this->db);
  $this->arr = array();
  $this->show($this->res,1,0);
  return $this->arr;
 }
 function show($res,$i,$ii){
   
    while($row = mysql_fetch_array($res))
    {
     $sql = "select * from tvmenu where bid=$row[id]";
       $res_sub = mysql_query($sql, $this->db);
       $num_sub = mysql_num_rows($res_sub);
       
     if($num_sub > 0)
     {
      $array=array();
      echo "<li>+,{$row['id']}{$row['name']}{$i}{$ii}</li>";
      $array['id'] = $row['id'];
      $array['name'] = $row['name'];
      $array['exp'] = 'Y';
      $array['layer'] = $i;
      array_push ($this->arr, $array);
         $i++;
         $this->show($res_sub,$i,$ii);
         $i--;
        }else{
         $array=array();
         echo "<li>-,{$row['id']}{$row['name']}{$i}{$ii}</li>";
      $array['id'] = $row['id'];
      $array['name'] = $row['name'];
      $array['exp'] = 'N';
      $array['layer'] = $i;
      array_push ($this->arr, $array);
         }    
    }
   
 }
}
 
复制代码
发表于 2011-4-19 01:08:14 | 显示全部楼层
用 foreach 循环,请仔细揣摩手册的例子。
 楼主| 发表于 2011-4-19 16:51:50 | 显示全部楼层
用 foreach 循环,请仔细揣摩手册的例子。
Hex 发表于 2011-4-19 01:08



    已经解决了。我用foreach($res->result_array() as $row)来代替。
发表于 2012-4-2 18:12:47 | 显示全部楼层

用 foreach 循环,请仔细揣摩手册的例子。
效果不是一样的,如果查询的数据非常多,怎么办呢?
发表于 2012-4-3 22:04:31 | 显示全部楼层
tangjianft 发表于 2012-4-2 18:12
用 foreach 循环,请仔细揣摩手册的例子。
效果不是一样的,如果查询的数据非常多,怎么办呢?
...

我觉得一般数据不会超过1千行吧,超过一千行就可以分页了。

本版积分规则