Tuesday, September 27, 2016

Cara membuat manual autoincrement di codeigniter (mysql atau postgree)

Cara membuat manual autoincrement di codeigniter (mysql atau postgree)

Pada pembahasan kali ini saya akan membahas bagai mana cara membuat auto increment manual.
    Untuk source yang saya gunakan adalah :
    • PHP 5.6
    • PostgreSQL 9.3
    • Mysql 5.0
    Sebenarnya untuk membuat manual autoicrement tidaklah sulit, untuk kamu yang sudah belajar banyak pasti sudah bisa kelanjutan artikel ini bakal seperti apa.

    Klunya adalah MAX().... ???!?!?!?!??

    benar sekali, saya akan menggunakan fungsi max untuk mengetahui berapa autoincremnt terakhir yang ada pada tabel saya di database.

    Tabel untuk MYSQL :
    
    CREATE TABLE siswa
    (
     id_siswa INT NOT NULL AUTO_INCREMENT,
     nama_siswa VARCHAR(100),
     alamat_siswa TEXT,
     PRIMARY KEY ( id_siswa )
    );
    

    Tabel untuk POSTGRESQL :
    
    CREATE TABLE "siswa"
    (
     id_siswa serial,
     nama_siswa character varying,
     alamat_siswa text,
     CONSTRAINT siswa_pkey PRIMARY KEY (id_siswa)
    )
    WITH (
     OIDS=FALSE
    );
    ALTER TABLE "siswa"
     OWNER TO postgres;
    

    Pada bagian ini kamu bebas untuk menggunakan tabel apasaja, cuma jika kamu bingung dengan nanti cara penerapan querynya saran saya mening kamu ikutin terlebih dahulu tabelnya, maksudnya tabelnya di samakan dengan saya, disini saya memakai tabel siswa. silahkan salin saja query di atas lalu run, (pilih query sesuai database yang kamu pakai).

    Lalu untuk query autoincrementnya seperti ini kurang lebih :
    
    $this->db->select("MAX(id_siswa)+1 AS id");
    $this->db->from("siswa");
    $query = $this->db->get();
    
    return $query->row()->id;
    

    Maksud dari kode di atas adalah, dia akan mencari nilai increment paling besar, lalu setelah mendapatkan increment terbesar dia akan menambah increment dengan nilai satu. Lalu di akhir dia akan mengembalikan nilai increment yang kamu butuhkan.

    Mungkin cukup sekian, jika ada yang kurang paham bisa koment saja :)
    Terima kasih

    Saya hanya seorang "newbie" yang baru bisa ngoding lohor kemarin.


    EmoticonEmoticon