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 :)

avatar Naura16
@Naura16

4 Kontribusi 1 Poin

Diperbarui 4 tahun yang lalu

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>

avatar dianarifr
@dianarifr

642 Kontribusi 316 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban