簡體   English   中英

查詢僅重試Codeigniter中的最后一個值

[英]Query returing only last value in codeigniter

我是CI / PHP / development的新手。 我陷入了這個問題。 看來真的很基礎,但我做對了! 在執行sql時,我只能返回最后一個值。

調節器

$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']);

模型

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

首先,您可以通過執行以下操作從一個表中選擇所有后續日期:“從tg_partner_data中選擇SELECT Followup_date WHERE Assign_to ='$ userid'AND active ='Y'”。

然后,對於每個followup_date,您將執行另一個查詢,但是您不合並prevoius結果,而只是在foreach循環中覆蓋它們。

Foreach循環應如下所示:

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

您還可以重寫SQL查詢:從tg_partner_data中選擇COUNT(*),其中assign_to ='$ userid'AND followup_date ='$ date'AND active ='Y'“

它將允許您直接從數據庫獲取行數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM