在获取数据库中的值后,在codeigniter 3中获取未定义的索引返回日期?

时间:2016-10-05 08:38:28

标签: php mysql codeigniter codeigniter-2 codeigniter-3

我从数据库中获取值并且当我使用print_r时成功显示了值但是当我尝试回显值时出现错误它给出了错误消息:

  

未定义的索引: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';
?>

请原谅,因为我是新手!提前致谢

4 个答案:

答案 0 :(得分:1)

更改模型中的return $query->result();,如下所示

return $query->result_array();

** return $query->result();这将作为对象返回。如果要使用此功能,请访问echo $query->return_date;

等数据

答案 1 :(得分:1)

您在MODEL中使用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() vs. result_array()

答案 2 :(得分:1)

$query->result()会返回一个对象数组,因为它不知道是否应该是1个结果或100,000个结果。要获取单个结果,请改为使用$query->row()

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

答案 3 :(得分:0)

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

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

在您的视图页面

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