在视图codeigniter中显示查询

时间:2011-06-10 16:21:21

标签: codeigniter

我可以说我的控制器的查询是$ query 除了使用这种代码之外,如何显示数据?

foreach($query as $row){
echo $row->student_id;
}

除此之外的任何其他查询只有一行
我能以这种方式访问​​返回的数组吗?

$query['student_id'];

3 个答案:

答案 0 :(得分:2)

假设您的表格包含以下字段

student_id and student_name

让您的模型或控制器只返回一行。

function get_first_student() {

    $query = this->db->select('*')->from('student')-where('student_id','1')->limit(1);
    $data['stuff'] =  $query->row_array(); // or $query->row() which returns an object
    $this->load->view('whatever',$data)

}

然后在你看来

<p>student name: <?= $stuff['student_name'] ?> </p>
<p>student id: <?= $stuff['student_id'] ?> </p>

答案 1 :(得分:1)

实际上,$query->row()只是获取第一行。

因此,您可以执行以下操作,而不是遍历结果:

$student_id = $query->row()->student_id; // (untested)

OR

$row = $query->row();
$student_id = $row->student_id;

假设查询将始终返回一行。

答案 2 :(得分:0)

假设您正在显示用户的个人资料。将所有数据库查询存储在MODEL中是一种很好的做法。我用这个:

控制器:

$this->load->model('Profile');
$data['row'] = $this->Profile_model->profile_read(); //get profile data
$this->load->view('profile_view', $data); //load data to view

MODEL:

function profile_read()
{
        $this->db->where('user_id', $user_id);
        $query = $this->db->get('user_profiles'); //get all data from user_profiles table that belong to the respective user
        return $query->row(); //return the data    
}

在模型中,您可以拥有所有其他数据库功能(创建,删除,更新)

查看:

<?php echo $row->name; ?>
<?php echo $row->email; ?>
<?php echo $row->about; ?>
etc

最后,在视图中,您可以回显表中属于该用户的所有行。