如何用FOR或WHILE遍历数据库啊
本帖最后由 黑鹰 于 2011-7-14 16:18 编辑手册上用的是FOREACH。
如何用FOR或WHILE遍历数据库呢,我发现用FOREACH递归时只能读出一层,不知道是不是因为没有movenext的原因。
$data=$this->db->query('select * from news');
foreach($data->result() as $row)
如何改成FOR或WHILE来循环啊。
foreach是自动的读的
用for跟while也一样,只不过你要count总的记录数,然后从1到count进行循环遍历 但不知道该怎么读取 这个内容。
for($i=0;$i<count($data->result());$i++){
echo $data->result()['newsid'];
}
黑鹰 发表于 2011-7-14 16:32 static/image/common/back.gif
但不知道该怎么读取 这个内容。
for($i=0;$iresult());$i++){
echo $data->result()['newsid'];
认真看手册啊
如果传入的参数超出行索引,则返回第一行(索引为0)数据
除此以外, 我们还可以使用下面的方法通过游标的方式获取记录:
$row = $query->first_row()
$row = $query->last_row()
$row = $query->next_row()
$row = $query->previous_row()
默认情况下他们将返回一个 object,同时你也可以传递参数 "array" 以便使用 array 的方式获取数据
$row = $query->first_row('array')
$row = $query->last_row('array')
$row = $query->next_row('array')
$row = $query->previous_row('array')
那么你就可以使用while($row = $query->next_row()){}来操作了
本帖最后由 黑鹰 于 2011-7-14 17:19 编辑
哦,其实我想用递归,但foreach好象不用游标movenext就不向下走了。只会得到第一行数据。
function index($id,$b,$list){
$b=$b+1;
$data=$this->db->query('select * from lm_info_class where info_cla_id='.$id);
foreach($data->result() as $row){
$list=$list.'<option value='.$row->info_class_id.'>└'.$row->info_class_title.'</option>';
return $this->index($row->info_class_id,$b,$list);
}
return $list;
单独的环境用FOR或WHILE循环
return $this->index($row->info_class_id,$b,$list);
$rs->movenext;
可以递归所有层出来。
页:
[1]