Postingan lainnya
Duplicate entry for key 'PRIMARY'
para mastah tolong di bantu dong saya masih newbie nihhh gimana sih caranya agar ketika kita menginsert data primary yang sama akan muncul tampilan error yang kita buat atau field diinputnya ditandai bahwa nama field telah dipakai agar tidak tampil eror seperti ini :
Error Number: 1062
Duplicate entry 'pkkm' for key 'PRIMARY'
INSERT INTO `gallery` (`nama_acara`, `subject`, `date`, `gambar_acara`) VALUES ('pkkm', 'aa', '11/Mar/2018 08:15 PM', 'Acara_2018-03-11_TIME_08-15-08-PM_22.png')
Filename: C:/xampp/htdocs/HMIFFF/system/database/DB_driver.php
Line Number: 691
ini kodingan controllernya
public function acara_gallery(){
if($this->session->has_userdata('username')){
$this->form_validation->set_rules('nama_acara','Nama acara','trim|required|min_length[3]');
$this->form_validation->set_rules('subject','subject','required');
$this->form_validation->set_rules('date','required');
if (empty($_FILES['gambar_acara']['name']))
{
$this->form_validation->set_rules('gambar_acara', 'GAMBAR', 'required');
}
if($this->form_validation->run()===FALSE){
$this->load->view('admin/pages/static/header');
$this->load->view('admin/pages/forms/galleryacara');
$this->load->view('admin/pages/static/footer');
}else{
if (!empty($_FILES['gambar_acara']['name']))
{
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$new_name = "Acara_".date('Y-m-d')."_TIME_".date('h-i-s-A')."_".$_FILES['gambar_acara']['name'];
$config['file_name'] = $new_name;
$this->upload->initialize($config);
if ($this->upload->do_upload('gambar_acara'))
{
$img = $this->upload->data();
$this->admin_model->set_gallery($new_name);
$this->session->set_flashdata('success', 'Insert data succes');
redirect('admin/galleryacara');
}
else
{
$this->session->set_flashdata('error', 'Somthing worng. Error!!');
echo $this->upload->display_errors();
}
}
}
}else {
redirect('admin/login');
}
}
ini kodingan admin model saya
public function set_gallery($file_name){
$this->load->helper('url');
$nmacara=url_title($this->input->post('nama_acara'),'dash',true);
$this->load->library('upload');
$data= array(
'nama_acara'=>$nmacara,
'subject' =>$this->input->post('subject'),
'date' =>$this->input->post('date'),
'gambar_acara'=>$file_name
);
return $this->db->insert('gallery',$data);
}
public function set_message(){
$data=array(
'nama' =>$this->input->post('nama') ,
'email' =>$this->input->post('email') ,
'message'=>$this->input->post('message'),
'date'=>$this->input->post('date')
);
return $this->db->insert('contact_message',$data);
}
sama sekaliang dong kalo key unique kegunaannya di php atau di database apa aja sih ?bakal berpengaruhnya diapa aja terimakasih agan agan mastah :)
4 Jawaban:
sebelumnya udah ada validasinya gan? bisa dilihat validasinya seperti apa?
Kalau belum/sudah, Seharusnya Validasi ditaruh sebelum fungsi set_gallery dipanggil, misal:
//Buat validasi pkkm
public function check_pkkm($nama_acara){
hasil = db->getPkkm($nama_acara);
return hasil;
}
//Validasi Pkkm tersebut, jika null / 0 maka di insert
if(check_pkkm == null || check_pkkm == 0){
//Insert ke database
set_gallery;
//Jika ada pkkm tersebut, maka muncul error message (duplicate)
} else {
echo "error duplicate" . $nama_acara;
}
"kalo key unique kegunaannya di php atau di database apa aja sih ?bakal berpengaruhnya diapa aja"
jawab: unique key tujuannya supaya tidak ada duplicate data (sehingga tidak berulang2), pengaruhnya supaya data lebih spesifik (tidak sulit untuk di filter).
gann disini saya menggunakan routes jadi ketika menekan button akan di arahkan ke function yang saya inputkan nahh terus gimana caranya agar function yang agan @abyanjksatu akan saya terapkan? apakah validasinya diterapkan di function insert?
Jawaban Terpilih
Ralat, Validasinya bisa didalam function set_gallery dengan membuat fungsi check_pkkm dulu, seperti ini:
//pertama buat dulu fungsi validasinya + query db nya
public function check_pkkm($nama_acara){
hasil = db->countPkkm($nama_acara);
return hasil;
}
//ini saat set_gallery dipanggil (buatan agan)
public function set_gallery($file_name){
$this->load->helper('url');
$nmacara=url_title($this->input->post('nama_acara'),'dash',true);
//Disini seharusnya ada validasi untuk $nmacara
if (check_pkkm($nmacara) == null || check_pkkm($nmacara) == 0){
//Jika belum ada $nmacara tersebut, maka Melakukan insert
$this->load->library('upload');
$data= array(
'nama_acara'=>$nmacara,
'subject' =>$this->input->post('subject'),
'date' =>$this->input->post('date'),
'gambar_acara'=>$file_name
);
return $this->db->insert('gallery',$data);
} else {
//Jika sudah ada, maka Melakukan Error message duplicate
return echo "error duplicate" . $nmacara;
}
}
**btw sorry kalo salah syntax nya, intinya: 1. bikin fungsi check duplicate nya (hasilnya integer/hasil count dari pkkm nya) 2. buat if else untuk check $nmacara nya, jika 0 maka insert, jika tidak 0 maka duplicate data
**untuk query db->countPkkm($nama_acara) nya bisa kaya gini:
SELECT COUNT(Pkkm) AS hasil FROM gallery;
gannn functionnya ga kepanggil terus nih kenapa ya?