簡體   English   中英

在Codeigniter中無法從模型到控制器獲取查詢結果

[英]Cannot get query result from Model to Controller in Codeigniter

嘗試通過在代碼點火器中調用存儲過程從數據庫中獲取結果。 以下是我的控制器和模型。 從存儲過程中獲取結果,模型運行良好,並且在模型中執行print_r()時可以顯示結果。 但是我無法在控制器方法中獲得查詢結果。 無法在此處理解錯誤。

控制器:

function weeklysalesstatus()
{
    $this->data['rpt']  =$this->reports_model->weeklysalesstatus(true);
    $this->data['page_title'] ='Weekly Sales Status [ Residential ]';
    print_r("here...");
    $this->page_construct('reports/weeklysalesstatus', $this->data);
}

模型:

public function weeklysalesstatus($sender = false)
{
    $sql = 'select * from region';
    $sql1 = 'CALL GetWeeklySalesStatus()';
    $query = $this->db->query($sql1); 

    if(count($query) > 0) {
        foreach (($query->result()) as $row) {
            $data[] = $row;
            //var_dump($data);
        }
        return $data;
    } else { 
        print_r("no rows");
    }
    return $data;
}

問題在此行中的某處: $this->data[$rpt] = $this->reports_model->weeklysalesstatus(); 但是無法弄清楚。 謝謝

編輯:

僅當我調用存儲過程調用時,才會出現這些錯誤。 對於其他查詢,它運行完美。 那么,在Codeigniter DB類上是否需要進行任何設置以通過活動記錄調用存儲過程?

$ q = $ this-> db-> query('CALL GetWeeklySalesStatus');

將此行更改為

$ q = $ this-> db-> query('CALL GetWeeklySalesStatus')-> result();

在模型中

public function weeklysalesstatus()
{
    //$sql = 'select * from region';
    $sql1 = 'CALL GetWeeklySalesStatus()';
    $query = $this->db->query($sql1); 

    if(!empty($query)) 
    {
        $data = $query->result_array();
        return $data;
    }
    else 
    { 
        return FALSE;
    }
}

在控制器中

function weeklysalesstatus()
{
    $rpt  =$this->reports_model->weeklysalesstatus();

    if ($rpt == FALSE) {
        echo "Empty";
    } else {
        $data['rpt'] =  $rpt;
    }

    $data['page_title'] ='Weekly Sales Status [ Residential ]';
    $this->page_construct('reports/weeklysalesstatus', $data);
}

像下面那樣修改控制器,希望它能正常工作

function weeklysalesstatus()
        {
             $this->data['rpt']   =$this->reports_model->weeklysalesstatus();
             $this->data['page_title'] ='Weekly Sales Status';
             $this->page_construct('reports/weeklysalesstatus', $this->data);
        }

您的模型

public function weeklysalesstatus($sender = false)
{
    $sql = 'select * from region';
    $sql1 = 'CALL GetWeeklySalesStatus()';
    $query = $this->db->query($sql1); 
    $data["result"] = array();
    if(count($query) > 0) {
        foreach (($query->result()) as $row) {
           $data["result"][] = $row;
           //var_dump($data);
        }
    }
    return $data;
}

您的控制器

function weeklysalesstatus()
{
   $data['rpt']  =$this->reports_model->weeklysalesstatus(true);
   $data['page_title'] ='Weekly Sales Status [ Residential ]';
   print_r("here...");
   $this->page_construct('reports/weeklysalesstatus', $data);
}

暫無
暫無

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

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