sooraj s pillai
sooraj s pillai

Reputation: 916

Query returing only last value in codeigniter

I am new to CI/PHP/development. Im stuck on this problem. It seems to be really basic but i just cant get it right! I am able to returning only last value while sql excecution .

controller

$data['leadd']= $this->dashboard_model->countt($this->session->userdata('user_id'));

     foreach ($data['leadd'] as $q) { $date = $q['followup_date'];

     $data['lead']= $this->dashboard_model->lead_count($this->session->userdata('user_id'),$date); }

     $data['count'] = count($data['lead']);

Model

public function countt($userid)
{
    $sql = $this->db->query("SELECT followup_date FROM tg_partner_data WHERE assign_to = '$userid' AND active = 'Y'");

    return $sql->result_array();
}

public function lead_count($userid,$date)
{   
    $sql1 = $this->db->query("SELECT * FROM tg_partner_data
                             WHERE assign_to = '$userid' AND followup_date = '$date'
                             AND active='Y'");
    //echo $this->db->last_query();

    return $sql1->result_array();
}

Upvotes: 0

Views: 94

Answers (1)

Jacek
Jacek

Reputation: 36

First you select all followup dates from one table by executing this: "SELECT followup_date FROM tg_partner_data WHERE assign_to = '$userid' AND active = 'Y'".

Then for each followup_date, you execute another query but you don't merge prevoius results just overwrites them in foreach loop.

Foreach loop should look like this:

$data['lead'] = array();
foreach ($data['leadd'] as $q) { 
    $date = $q['followup_date'];
$data['lead'][] = $this->dashboard_model->lead_count($this->session->userdata('user_id'),$date));
}

You can also rewrite SQL query: SELECT COUNT(*) FROM tg_partner_data WHERE assign_to = '$userid' AND followup_date = '$date' AND active='Y'"

It will allow you to get number of rows directly from DB.

Upvotes: 1

Related Questions