即使从数据库中获取值后,在 codeigniter 3 中获取未定义的索引 return 日期?

getting an undefined index return date in codeigniter 3 even after getting values from database?

我正在从数据库中获取值,当我使用 print_r 时,这些值已成功显示,但是当我尝试回显这些值时出现错误,它给我一条错误消息:

Undefined index: return_date

我的控制器代码如下

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';
?>

新手请见谅!谢谢

按如下方式在您的模型中更改此 return $query->result();

return $query->result_array();

** return $query->result(); 这个 returns 作为对象。如果要使用它,请访问 echo $query->return_date;

之类的数据

您正在模型中使用 result() 函数获取记录,这会将 return 数据转换为对象形式而不是数组形式。

这个:

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'];
}
?>

此 post 将帮助您理解这两个函数:codeigniter, result() vs. result_array()

$query->result() returns 一个对象数组,因为它不知道应该有 1 个结果还是 100,000 个结果。要只获取一个结果,您可以使用 $query->row()

但这仍然会给你结果作为一个对象而不是一个数组,所以如果你想在你的视图中使用 $query['return_date'],你会使用 $query->row_array() 来获取行作为一个数组。

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

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

在您的浏览页面中

echo $data[0]['return_date'];