Postingan lainnya
Script generate pin tidak work dengan semestinya
Mohon bantuannya. saya mencoba script generate pin di CI yang saya dapat dari tutorial <a href=' http://mfikri.com/artikel/Membuat-Kode-unik-berdasarkan-tanggal-dengan-Codeigniter.html '> http://mfikri.com/artikel/Membuat-Kode-unik-berdasarkan-tanggal-dengan-Codeigniter.html </a>. di tutorial tsb pin berjumlah 10 digit, sedangkan format pin yang ingin sya buat berjumlah 8 digit, berisi tanggal saat input data+nomor urut (cth : 26081901). script di model nya saya ubah sedikit seperti ini :
CONTROLLER (pemesanan_penelitian_coba.php)
public function add(){
$this->load->view('frontend/pemesanan_penelitian_coba/create');
}
public function proses(){
if(isset($_POST['add'])){
$this->pesan_penelitian_coba_m->tambah();
}elseif (isset($_POST['edit'])) {
$inputan=$this->input->post(null, TRUE);
$this->pesan_penelitian_coba_m->ubah($inputan);
}
redirect('frontend/pemesanan_penelitian_coba/');
}
MODEL (pesan_penelitian_coba_m.php)
function get_pin(){
$q = $this->db->query("SELECT MAX(RIGHT(pin,3)) AS kd_max FROM pemesanan_izin_penelitian WHERE DATE(tanggal_pemesanan)=CURDATE()");
$kd = "";
if($q->num_rows()>0){
foreach($q->result() as $k){
$tmp = ((int)$k->kd_max)+1;
$kd = sprintf("%02s", $tmp);
}
}else{
$kd = "01";
}
date_default_timezone_set('Asia/Jakarta');
return date('dmy').$kd;
}
public function tambah(){
$nmr_pin=$this->get_pin();
$param=array(
'email' =>$this->input->post('email'),
'semester' =>$this->input->post('semester'),
'kode_jenis' =>'DL',
'tujuan' =>$this->input->post('tujuan'),
'perihal' =>$this->input->post('perihal'),
'tema_penelitian' =>$this->input->post('tema_penelitian'),
'nama_dosen' =>$this->input->post('nama_dosen'),
'pin' =>$nmr_pin,
'status' =>'1',
);
$this->db->insert('pemesanan_izin_penelitian', $param);
}
hasil pin saya seperti ini, pada pertama submit data pin ter-generate 10 digit tetapi pada kali kedua dan seterusnya pin tergenerate 11 digit (lihat pada gambar, 280619902). salahnya dimana ya?
view-nya tidak saya sertakan karena pinnya ingin saya buat agar tidak tampil di form. hanya generate kemudian langsung simpan database. terimakasih banyak :)
1 Jawaban:
Jawaban Terpilih
coba max rightnya ganti 2, sepertinya berpengaruh <pre> "SELECT MAX(RIGHT(pin,2)) AS kd_max FROM pemesanan_izin_penelitian WHERE DATE(tanggal_pemesanan)=CURDATE()" </pre>