2017-09-06 1 views
1

Ich versuche, den Wert in einem berechneten SQL-Feld, das als ein Alias ​​von meinem Modell in den Controller gespeichert wird, abzurufen. Codeigniter gibt NULL in der Ansicht zurück, aber wenn ich dieselbe Abfrage in meiner Workbench ausführe, erhalte ich das erwartete Ergebnis. Gibt es etwas falsch in meinem Code tue: Hier mein MODELCodeigniter Active Record und Tabellenalias

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

Und mein Controller

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

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

Was ist der Wert von $ query nach der Zuweisung? – Niloct

+0

Das Resultset soll mir die Summe aller Credits abzüglich der Debits eines bestimmten Kunden geben. Aber wenn ich eine print_r von $ query oder $ clientBalance mache, gibt es NULL zurück – Ameque

+0

tue ein 'print_r ($ data) 'um zu überprüfen, ob index und property field korrekt in result sind – prograshid

Antwort

0

Versuchen Sie, diese

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; 
} 
  • Es Ihre Anfrage gedruckt wird dann passen mit Workbench-Abfrage ODER
  • führen Sie diese gedruckte Abfrage in Workbench

Dann können Sie die Idee, wo Fehler gemacht.