Reputation: 83
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?
Upvotes: 0
Views: 57
Reputation: 38584
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;
}
}
Upvotes: 0
Reputation: 5522
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);
Upvotes: 1