2011-06-10 79 views
3

可以说我的控制器查询是$查询。
如何显示使用这种类型代码以外的数据?在视图中显示查询codeigniter

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

任何比这其他堂妹查询只有一行
可我访问返回数组像这样什么办法?

$query['student_id']; 
+0

另一种替代方法是将数据存储在会话中,该会话可以在您的站点的任何地方访问,而无需每次查询。理想的存储在会话中的一些数据是用户名或用户标识。 http://codeigniter.com/user_guide/libraries/sessions.html – CyberJunkie 2011-06-11 00:41:44

回答

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

其实,$query->row()只取第一行。

因此,而不是通过结果循环,你可以只是做:

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

OR

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

假设查询将总是返回一行。

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  
} 

在这个模型中,你可以有你的其他数据库功能(创建,删除,更新)

VIEW:

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

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

相关问题