在codeigniter中显示多行

时间:2011-12-23 16:47:55

标签: php mysql codeigniter

我有查询,我在哪里获取大约5行的内容,每行有不同的内容,但我现在不在我的视图中单独显示它们。

当我将query->result()从我的模型传递回我的控制器$query,然后加载带有$query数据的视图时,我不知道如何回显例如第1行的内容字段。

我只知道如何执行此操作:foreach($query as $row) { echo $row->content; }

但这不允许我选择哪些行内容数据(检索到的5个)我想要echo出来。

有人可以解释一下这是怎么做的吗?

2 个答案:

答案 0 :(得分:3)

CodeIgniter文档包含一个标题为Generating Query Results的部分,其中包含您正在寻找的一些示例。

这是一个(显然是做作的)例子:

模型:

class Model extends CI_Model
{
    public function get_data()
    {
        return $this->db->query('...');
    }
}

控制器:

class Controller extends CI_Controller
{
    public function index()
    {
        $data['query_result'] = $this->model->get_data();
        $this->load->view('index', $data);
    }
}

视图:

<?php foreach ($query_result->result() as $row): ?>
    <?php echo $row->field_1; ?>
    <?php echo $row->field_2; ?>
    <?php // and so on... ?>
<?php endforeach; ?>

答案 1 :(得分:0)

function a(){   
   $this->db->select('*');
   $this->db->from('table');
   $this->db->where(array('batch_id'=>$batchid,'class_id'=>$classid));
   $this->db->where(array('batch_id'=>$batchid,'class_id'=>$classid));
   $query=$this->db->get();
   for($i=1;$i<=$query->num_rows();++$i){
      $data[$i]['task'] = $query->row($i)->task;
      $data[$i]['subject_id'] = $query->row($i)->subject_id;
      $data[$i]['postdate'] = $query->row($i)->postdate;
      $data[$i]['cdate'] = $query->row($i)->cdate;
   }
}