2017-09-06 4 views
1

私のモデルからエイリアスとしてコントローラに格納されている計算されたSQLフィールドの値を取得しようとしています。 CodeigniterはビューでNULLを返しますが、同じクエリをワークベンチで実行すると、期待通りの結果が得られます。何があるのは私のコードで間違ってやっている:ここに は私のモデルですCodeigniterアクティブなレコードとテーブルのエイリアス

public function get_balance() { 
$this->db->select('SUM(IFNULL(transactions.credit,0)-IFNULL(transactions.debit,0)) AS clientBalance',FALSE); 
$this->db->from('transactions'); 
$this->db->where('clientID', $this->uri->segment(3)); 
$this->db->group_by('accountID'); 
$query = $this->db->get(); 
return $query->row_array(); 
} 

そして、私のCONTROLLER

public function transactions($clientID = NULL) { 
     $data['client_balance'] = $this->accounts_model->get_balance(); 

       $data['client_Balance'] = $data['client_balance']['clientBalance']; 
     } 
+0

割り当て後に '$ query'の値は何ですか? – Niloct

+0

結果セットは、すべてのクレジットの合計より特定のクライアントのデビットを差し引いたものです。しかし、$ queryまたは$ clientBalanceのprint_rを実行すると、NULLが返されます。 – Ameque

+0

インデックスとプロパティフィールドが結果に正しく来るかどうかを調べる 'print_r($ data)'を実行します – prograshid

答えて

0

それが一致し、あなたのクエリを出力します。この

public function get_balance() { 
    $this->db->select('SUM(IFNULL(transactions.credit,0)-IFNULL(transactions.debit,0)) AS clientBalance', FALSE); 
    $this->db->from('transactions'); 
    $this->db->where('clientID', $this->uri->segment(3)); 
    $this->db->group_by('accountID'); 
    $query = $this->db->get(); 
    $result = $query->row_array(); 
    echo "<pre>".$this->db->last_query(); 
    die; 
    return $result; 
} 
  • をお試しくださいWorkbenchクエリで または
  • この印刷されたクエリをWorkbenchで実行する

次に、間違った箇所を知ることができます。

関連する問題