2017-05-29 5 views
2

Ich möchte Daten aus 3 Tabelle löschen, ich habe Tabelle user, pemohon, peserta wo alle Tabelle miteinander mit Fremdschlüssel verbunden ist.CodeIgniter - Löschen von Daten aus mehreren Tabellen

diese Abfrage Arbeit habe ich auf mysql versucht

DELETE user,pemohon,peserta 
FROM user,pemohon,peserta 
WHERE user.id_user=pemohon.id_pemohon AND 
pemohon.id_pemohon=peserta.id_peserta AND pemohon.id_pemohon=1 

so konvertiere ich zu CodeIgniter wie diese

function delete_data($id) 
{ 
    $this->db->where('pemohon.id_pemohon=user.id_user'); 
    $this->db->where('pemohon.id_pemohon=peserta.id_peserta'); 
    $this->db->where('pemohon.id_pemohon',$id); 
    $this->db->delete('pemohon','user','peserta'); 
} 

aber dieser Code nicht funktioniert, können Sie meinen Code beheben?

function delete_data($id) 
{ 
    $sql = "DELETE user,pemohon,peserta 
     FROM user,pemohon,peserta 
     WHERE user.id_user=pemohon.id_pemohon 
     AND pemohon.id_pemohon=peserta.id_peserta 
     AND pemohon.id_pemohon= ?"; 

    $this->db->query($sql, array($id)); 
} 

Und ohne zu entkommen $ id:

function delete_data($id) 
{ 
    $this->db->where('pemohon.id_pemohon=user.id_user'); 
    $this->db->where('pemohon.id_pemohon=peserta.id_peserta'); 
    $this->db->where('pemohon.id_pemohon',$id); 
    $this->db->delete(array('pemohon','user','peserta')); 
} 

Wenn es mit Abfragefunktion ($ id entkam) nicht funktioniert, führen Sie: Danke

+1

Fein. Sie können auch '$ this-> db-> query (" Setzen Sie Ihre Abfrage hier, die Sie in mysql ausführen ")' – Nidhi

+0

@Nidhi ich habe es versucht, $ this-> db-> query ("DELETE user, pemohon , peserta FROM Benutzer, pemohon, peserta WHERE user.id_user = pemohon.id_pemohon UND pemohon.id_pemohon = peserta.id_peserta AND pemohon.id_pemohon = $ id "); aber nicht arbeiten – Pyon

+0

, aber Sie sagten über diese Query Arbeit dann warum es nicht funktioniert ?? . Versuchen Sie es mit geben Sie statische ID 'pemohon.id_pemohon = 1 'und auch überprüfen, $ ID' Wert haben oder nicht? – Nidhi

Antwort

2

In Löschfunktion müssen Sie Array von Tabellen geben werden :

function delete_data($id) 
{ 
    $this->db->query("DELETE user,pemohon,peserta 
     FROM user,pemohon,peserta 
     WHERE user.id_user=pemohon.id_pemohon 
     AND pemohon.id_pemohon=peserta.id_peserta 
     AND pemohon.id_pemohon= $id"; 
} 
+0

Wie ich Codeigniter Dokumentation sehe, kann diese Abfrage nicht mit Query Builder und Sie ausgeführt werden kann '$ this-> db-> query()' Funktion verwenden. –

+0

Tut mir leid, ich bin immer noch Neuling in coderigniter'AND pemohon.id_pemohon =? ' – Pyon

+0

Fragezeichen füllen durch zweiten Parameter in' $ this-> db-> query() 'Funktion, aber es entkam zur Verhinderung von SQL-Injektion. –

1

können Sie diesen Prozess versuchen

function delete_data($id) 
{ 
    $this->db->delete('user', array('id_user' => $id)); 
    $this->db->delete('pemohon', array('id_pemohon' => $id)); 
    $this->db->delete('peserta', array('id_peserta' => $id)); 
} 
+0

Wenn ich diesen Code verwende, löschte er nur Daten aus der Tabelle "pemohon", löschte sie aber nicht in anderen Tabellen – Pyon

Verwandte Themen