2016-10-05 57 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']; 
相关问题