2016-03-28 1 views
1

Ist es möglich, Daten mit einer JOINed Tabellen mit Codingtiters Active Record CI2 zu aktualisieren? Ich habe laufenden Code und möchte in den Active Record von Codeigniter konvertieren.Wie aktualisiere ich Daten mit einer JOINed-Tabelle mit dem Active Record CI2 von Codeigniter?

public function update_table($job_id, $om_id, $recipient_id) 
{ 
    $query = "UPDATE table1 AS t1 
         INNER JOIN table2 AS t2 
           ON t1.om_id = t2.id 
       SET t2.read_date = NOW() 
       WHERE t2.ref_table_id = $job_id 
       AND t1.om_id = $om_id 
       AND t2.recipient_id = $recipient_id 
       AND t2.read_date = '0000-00-00 00:00:00'"; 

    $result = $this->db->query($query); 
    return $result; 
} 

Ich versuche so, aber nicht funktioniert.

public function update_table($job_id, $om_id, $recipient_id) 
{ 
    $this->db->set('t2.read_date', NOW()); 

    $this->db->where('t2.ref_table_id', $job_id); 
    $this->db->where('t1.om_id', $om_id); 
    $this->db->where('t2.recipient_id', $recipient_id); 
    $this->db->where('t2.read_date', '0000-00-00 00:00:00'); 
    $this->db->where('t2.om_id = t1.id'); 
    $this->db->update('table1 AS t1, table AS t2'); 

} 

Jede Hilfe wird geschätzt. Dank

Antwort

0

können Sie dies versuchen ..

liefern die $ Zustand als Array ... gleiche mit den Daten, die Sie aktualisieren wollen.

+0

Ich denke, das ist nur die einfache Art und Weise auf CI, wo sollte ich die Join-Klausel setzen? –

+0

@VonnGarcia hmmm, so weit ich weiß kann man 'join' nur verwenden, wenn man Daten auswählt ... man aktualisiert nur das' t2.read_date' ... also muss man im Grunde nur eine 'where-Klausel' ausführen 't1.om_id' da' om_id' bereits ein Fremdschlüssel auf deinem 'table2 ist, warum nicht direkt eine' where-Klausel' auf 't2.om_id' ... du machst es dir selbst schwer ... –