[英]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.