在codeigniter3中获取未定义的索引返回日期,甚至在从数据库获取值之后?

kr98yfug  于 2021-06-24  发布在  Mysql
关注(0)|答案(4)|浏览(318)

我正在从数据库中获取值,并且在使用print\r时成功地显示了这些值,但在尝试回显这些值时出现了一个错误消息:
未定义索引:返回日期
我的控制器代码如下

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

请原谅我是新手!提前谢谢

bvhaajcl

bvhaajcl1#

$query->result() 返回一个对象数组,因为它不知道应该有1个结果还是100000个结果。为了只获取一个结果,您可以使用 $query->row() 相反。
但这仍然会将结果作为对象而不是数组给出,因此如果您想使用 $query['return_date'] 在你看来,你应该用 $query->row_array() 以数组形式获取行。

x4shl7ld

x4shl7ld2#

改变这个 return $query->result(); 在您的模型中,如下所示

return $query->result_array();

**return $query->result(); 它作为对象返回。如果您想使用此功能,请访问以下数据 echo $query->return_date;

oewdyzsn

oewdyzsn3#

您正在使用 result() 函数来获取记录,这将把数据返回到对象形式而不是数组中。
这是:

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()和result\u array()

ie3xauqp

ie3xauqp4#

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

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

在查看页面中

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

相关问题