2016-10-05 47 views
1

我取出由數據庫值,並將其成功地所示,當我使用的print_r,但我得到一個錯誤,當我嘗試它給我消息的錯誤來呼應值:即使在從數據庫獲取值之後,在codeigniter 3中獲取未定義的索引返回日期?

未定義指數:返回的航班

我的控制器代碼如下

public function latebooks(){ 
    $now = date('m/d/Y'); 
    $this->load->model('Time'); 
    $id=$this->session->userdata('userid'); 
    $this->load->model('Department'); 
    $table=$this->Department->selecttable($id); 
    foreach($table as $q){} 
    $table = $q->department_name; 
    $table = strtolower($table); 
    $run=$this->Time->timecalculations($table); 
    print_r($run); 
    $this->load->view('Books/datetime',['query'=>$run]); 
} 

和我對我的模型代碼如下:

public function timecalculations($table){ 
    $query= $this->db->get_where('issue_books',array('department_id'=>$table)); 
    return $query->result_array(); 
} 

,並在視圖中的代碼如下

<?php 

/** 
* Created by PhpStorm. 
* User: workspace 
* Date: 05-10-2016 
* Time: 13:46 
*/ 
include 'header.php'; 
?> 
<br /><br /> 
<?php 
echo $query['return_date']; 
?> 
<?php 
include 'footer.php'; 
?> 

請在你的模型原諒我的新手我在這裏!在此先感謝

+0

是什麼'的print_r($運行)的結果;'?在控制器? '$ query-> result()'這會返回對象不是數組 – devpro

+0

@devpro它返回我的輸出清楚地顯示它像一個數組 –

+0

你在這裏犯了一個錯誤,'foreach($ table as $ q){} $ table = $ q-> department_name; $ table = strtolower($ table);'應該在foreach循環裏面或者 使用'$ table = $ table [0] - > department_name' – AHJeebon

回答

1

您正在使用result()函數在MODEL中獲取記錄,這會將數據返回到不在數組中的對象形式。

此:

echo $query['return_date']; 

應該是:

echo $query->return_date; 

在你的問題你的修改後,你必須需要檢查什麼是你在print_r($run)獲得。

如果多維數組中的數據比您可以在此處使用循環的數據多,這將打印所有具有一個或多個記錄的數據。

<?php 
foreach ($query as $key => $value) { 
    echo $value->return_date; 
} 
?> 

如果你想使用result_array()功能比你可以用這樣的:

<?php 
foreach ($query as $key => $value) { 
    echo $value['return_date']; 
} 
?> 

這篇文章將幫助你瞭解這兩個函數:codeigniter, result() vs. result_array()

1

更改此return $query->result();如下

return $query->result_array(); 

** return $query->result();這返回作爲對象。如果要使用此訪問數據,則echo $query->return_date;

1

$query->result()返回對象數組,因爲它不知道是否應該有1個結果或100,000個結果。要獲取單個結果,您需要使用$query->row()

但是,如果你想在你的視圖中使用$query['return_date'],你會使用$query->row_array()作爲一個數組獲取行。

0

在您的控制器中進行以下更改。

$run['data']=$this->Time->timecalculations($table); 
$this->load->view('Books/datetime',$run); 

您認爲網頁

echo $data[0]['return_date']; 
相關問題