【问题标题】:Display multiple rows in codeigniter在codeigniter中显示多行
【发布时间】:2012-01-26 23:04:19
【问题描述】:

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

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

我只知道怎么做:foreach($query as $row) { echo $row->content; }

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

有人能解释一下这是怎么做到的吗?

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    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; ?>
    

    【讨论】:

    • 正如@birderic 示例所说,当您将变量传递给视图时,可以说数组的“顶部”会被切掉。所以总是把它放在一个数组中,例如:$data['post_data'] = $this->db->get('');
    【解决方案2】:
    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;
       }
    }   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      相关资源
      最近更新 更多