2011-06-10 112 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 

最後在視圖中,您可以回顯屬於用戶的表中的任何行。

相關問題