Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Bagaimana membuat validasi agar tidak terjadi duplikat record?

Bagaimana membuat validasi agar tidak terjadi duplikat record di php mysqli?

Berikut script saya :smile:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "survei";

$nama=$_POST['nama'];
$member=$_POST['member'];
$peserta=$_POST['peserta'];
$tour=$_POST['tour'];

mysqli_query($conn,"insert into gathering (nama, member, peserta, tour) values ('$nama', '$member', '$peserta', '$tour')");

header('location:index.php');

?>

Terimakasih

Tanggapan

  • edited November 2017
    set aja atribut unique di field nya.

    atau sekalian jadi primary key.
    jadi insert nya pake on duplicate update.
    https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

    btw ...
    yg elo insert itu bukan sesuatu yg bisa di "unique" kan ...
    nama 2 orang bisa sama.
    dan yg lain juga kayanya string semua, dan kayanya emang bisa kembar biarpun orang-nya beda.

    tambah yg bisa buat identifikasi.
    misal nomer ktp/nik.
  • $member=$_POST['member'];

    di bagian ini yang mau saya bikin apabila ada orang input dengan nomor member yang sama, dia akan mencegah dengan memunculkan alert.

    bagaimana ya scriptnya? field nya tidak bisa dibikin unik, atau saya ga bisa ya/ caranya gimana ya?

    Terimakasih
  • $member=$_POST['member'];

    nomor member ?
    emang itu isinya apa ?
    posting contoh isinya.
  • nomor member.
    contohnya : 20170980
    GVJ09384
    GVB65768
  • edited November 2017
    kalo elo yakin isinya bener2 unique ...

    elo bisa pilih salah satu :
    - field itu dijadikan "unique"
    - field itu dijadikan "primary key"

    saat insert, kalo double, bisa elo detect pake salah satu :
    - mysqli_error(...),
    kalo berhasil hasilnya : string kosong ''
    kalo dobel hasilnya : 'Duplicate entry '...' for key 'PRIMARY''

    - mysqli_errno(...)
    kalo berhasil hasilnya : angka 0
    kalo dobel hasilnya : angka 1062

    - mysqli_affected_rows(...)
    kalo berhasil hasilnya : angka 1
    kalo dobel hasilnya : angka -1

    yg paling pas sih pake mysqli_errno(...).
    karena nomer error mysql key dobel pasti 1062, bukan karena error yg lain.
Sign In or Register to comment.