简体   繁体   中英

database error with codeigniter

i want to make a edit form

this is my controller :

public function edit_data($id_kategori){
    $artikel = $this->mymodel->GetArtikel("where id_kategori = '$id_kategori'");
    $data = array(
        "id_kategori" => $mhs[0]['id_kategori'],
        "nama_lengkap" => $mhs[0]['nama_lengkap'],
        "judul" => $mhs[0]['judul'],
        "nama_kategori" => $mhs[0]['nama_kategori'],
        "isi" => $mhs[0]['isi']
    );
    $this->load->view('form_edit',$data);
    }   

public function do_update(){
    $id_kategori= $_POST['id_kategori'];
    $nama       = $_POST['nama_lengkap'];
    $judul      = $_POST['judul'];
    $nama_kategori  = $_POST['nama_kategori'];
    $isi        = $_POST['isi'];
    $data_insert = array(
    'id_kategori' => $id_kategori,
    'nama_lengkap' => $nama,
    'judul' => $judul,
    'nama_kategori' => $nama_kategori,
    'isi' => $isi);
    $where = array('id_kategori' => $id_kategori);
    $res = $this->mymodel->UpdateData('artikel',$data_update,$where);
    if($res>=1){
        $this->session->set_flashdata('pesan','Update Data Sukses');
        redirect('crud/index');
    }
    }

and my model :

public function GetArtikel($id_kategori=''){
        $data = $this->db->query('SELECT a.id_artikel, a.judul, a.tanggal_buat, a.tanggal_update, b.nama_kategori, c.nama_lengkap, c.id_user FROM artikel as a LEFT JOIN kategori as b on a.id_kategori=b.id_kategori LEFT JOIN user as c on a.id_user=c.id_user' .$id_kategori);
        return $data->result_array();
    }
    public function UpdateData($tabelNama,$data,$where){
        $res = $this->db->update($tabelNama,$data,$where);
        return $res;
        }

but when i run to the browser. error :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id_kategori = '1'' at line 1

how to resolve it?

Put a space before you concatenate the WHERE clause:

....on a.id_user=c.id_user' .$id_kategori);

to

....on a.id_user=c.id_user ' .$id_kategori);

In Controller

public function do_update(){    

    $res = $this->mymodel->UpdateData();

    if($res == TRUE)
    {
        # Success
        $this->session->set_flashdata('pesan','Update Data Sukses');
        redirect('crud/index');
    }
    else
    {
        # Error
        echo "Update Failed";
    }
}

In Model

public function UpdateData(){

    $id_kategori    = $_POST['id_kategori'];
    $nama           = $_POST['nama_lengkap'];
    $judul          = $_POST['judul'];
    $nama_kategori  = $_POST['nama_kategori'];
    $isi            = $_POST['isi'];

    $data = array(
       'nama_lengkap'   => $nama,
       'judul'          => $judul,
       'nama_kategori'  => $nama_kategori,
       'isi'            => $isi
    );

    $this->db->where('id_kategori', $id_kategori);

    if(!$this->db->update('artikel', $data))
    {
        #Error
        return FALSE;
    }
    else
    {
        #Success
        return TRUE;
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM