Search code examples
phpmysqlcodeignitercodeigniter-2codeigniter-3

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


I am fetching values from database and the values are successfully shown when i use print_r but i get an error when i try to echo the values out it gives me an error of Message:

Undefined index: return_date

my code for controller is as follows

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]);
}

and my code for my model is as follows:

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

and the code in the view is as follows

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

please forgive as i am novice here!Thanks in advance


Solution

  • You are using result() function in your MODEL for getting records, this will return data into object form not in array.

    This:

    echo $query['return_date'];
    

    Should be:

    echo $query->return_date;
    

    After your modification in your question, you must need to check what are you getting in print_r($run).

    If you have data in multi-dimensional array than you can use loop here, this will print all data either having one record or multiple.

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

    If you want to use result_array() function than you can use like:

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

    This post will help you to understand both functions: codeigniter, result() vs. result_array()