Skip to content Skip to sidebar Skip to footer

Mencegah Input Data Yang Sama Ke Mysql Memakai Php


Mencegah Input Data Yang Sama ke MySQL Menggunakan PHP Mencegah Input Data Yang Sama ke MySQL Menggunakan PHP

Terkadang  ada beberapa data – data tertentu yang pada ketika di input oleh user dilarang sama dengan user lainnya, contohnya menyerupai data untuk Username, Email, NISN atau NIK. melaluiataubersamaini tidak adanya data ganda, maka tentunya akan sangat memmenolong untuk mempergampang direktur dalam proses mengidentifikasi, mencari ataupun memfilter data menurut jenis data tertentu.

Baca juga :

Upaya untuk mencegah terjadinya input data yang sama ke Database MySQL juga yaitu salah satu bentuk/bagian dari validasi data. Dalam tahap validasi ini tentu akan terjadi sebuah proses yang memerintahkan PHP untuk terlebih lampau untuk mengecek apakah ada data yang sama di Database MySQL. Data akan dicek didalam percabangan terlebih lampau sebelum alhasil disimpan ke Database, jikalau kondisinya terpenuhi maka kita sanggup mengeset pada percabangan untuk melanjutkan proses penyimpan data, jikalau tidak terpenuhi maka akan ditampilkan pesan error untuk memdiberi tahu user bahwa data yang dimasukannya sudah terdapat di Database.

Kaprikornus pada dasarnya nanti kita perlu membuat sebuah query yang bertugas untuk mengecek data apakah sudah da didatabase atau belum, nanti proses pengecekannya dimenambahkan didalam percabangan lain yang bertugas untuk melaksanakan pengecekan data

Mencegah Input Data yang Sama ke MySQL Menggunakan PHP
Berikut ini saya akan mempersembahkan referensi sederhana bagaimana untuk mengecek apakah data yang dikirim sudah ada sebelum didatabase atau belum. Dalam referensi ini saya akan mencoba mengecek sebuah data NISN siswa :

misal 1 :

<?php $cek_nisn="SELECT nisn FROM ro_formulir WHERE nisn = '$_POST[nisn]'"; $cek_nisn_proses= mysqli_query($koneksi,$cek_nisn); $data_nisn = mysqli_fetch_array($cek_nisn_proses, MYSQLI_NUM); ?>


Lalu nanti Anda sanggup mengecek atau memanggil data diatas untuk dicek didalam percabangan, contohnya menyerupai diberikut ini

 if($data_nisn>0){ $nisnErr="NISN sudah digunakan"; }



Mencegah Input Data yang Sama ke MySQL Menggunakan PHP Prepared

misal diatas memakai cara biasa, jikalau kita ingin mengimplementasikan Prepared Statement, maka query atau susunan kodenya sanggup dibentuk menyerupai diberikut ini

misal 2

<?php //Use Prepare Data $cek_nisn=mysqli_prepare($koneksi, "SELECT * FROM ro_formulir WHERE nisn = ?") or die(mysqli_error()); $nisnpost=mysqli_real_escape_string($koneksi,$_POST['nisn']); //bind mysqli_stmt_bind_param($cek_nisn,"s",$nisnpost); //execute mysqli_stmt_execute($cek_nisn); //result $result=mysqli_stmt_get_result($cek_nisn); //fetch array $data_nisn=mysqli_num_rows($result);  ?> 



Selanjutnya untuk memanggil pada percabanganya sama menyerupai pada referensi pertama, yaitu spesialuntuk cukup membuat atau menambah baris diberikut pada percabangan

if($data_nisn>0){ $nisnErr="NISN sudah digunakan"; }



#Tambahan / Ralat
Pada query terkahir kalian juga sanggup saja memakai mysqli_num_rows ($namavariabel); kemudian panggil variabel pada percabanganny menyerupai diberikut $nama_variabel>1. atau juga sanggup mengeceknya secara manual memakai mysqli_num_rows pada percabangannya, menyerupai diberikut ini

$sql = "SELECT nisn FROM ro_formulir WHERE username='$data'";
$cek_nisn = mysqli_query($koneksi, $sql);
     
 if (mysqli_num_rows($cek_nisn) > 0) {
 $nisnErr="pesan error";    
}

Perlu diingat bahwa ketika kalian berhasil submit ke database, dan kalian coba back halaman sebelumnya, dan melaksanakan submit ulang, maka secara otomatis data akan tersubmit kembali, sehingga akan ada data ganda. Seolah - olah percabangannya tidak jalan, jadi kalau sudah berhasi submit sebaiknya pada percabangan terakhir arahkan user ke halaman lain biar ada proses reload/refresh halaman. Soalnya kalau di percabangannya di panggil seperi ini $data_nisn[0]>1 kadang percabanganya tidak jalan, dan jikalau percabangannya tidak jalan atau tidak memvalidasi dengan baik, coba rubah pemanggilannya jadi menyerupai ini $data_nisn>0

Ketika saya coba buat dipercabangannya jadi $data_nisn>0 ternyata meskipun user melaksanakan back ke halaman sebelumny, dan melaksanakan submit ulang, jikalau ada data sebelumnya, ia tidak akan mensubmit data sebelumnya yang sama. Jadi sebaiknya nanti pada percabangan, pakai $nama_variabel>0



#CATATAN PENTING
kalau boleh masukan pastikan untuk data NISN di set ke Char(10) dan pada waktu input, pastikan diset ke nilai benar, contohnya untuk nisn dengan char(10)  maka pas input tidakboleh pakai %d untuk integer tapi pakai %s. Hal tersebut akan berakibat fatal pada ketika pengecekan data. Kaprikornus nanti contohnya ketika nilai input dimulai dari 1 atau 2, percabangan berfungsi dengan baik kalau ada data yang sama di DB, ia tidak akan submit. Tapi kalau data nisn-nya dimulai dari angka dengan input 3 atau 9, ia sanggup submit data yang sama berkali - kali padahal sudah ada di Database, hal tersebut lantaran pada ketika kita insert datanya dijadikan nilai INTEGER, maka tentu saja nanti tipe data bakal berubah jadi Integer di database dan nilainya niscaya di set dari angka 2, dan si PHP tentu akan mensubmit data berkali - kali jikalau nilai inputnya dimulai dari 3 atau 9, lantaran angka tersebut tidak ada di database, dan setelah berhasil disubmit pun angkanya akan berubah nilai.
http://php.net/manual/en/function.sprintf.php

KESIMPULAN :
  1. Lakukan Query menyerupai biasa,  sanggup pakai num_rows atau fetch_array
  2. Selanjutnya  lakukan validasi dengan memanggilnya dipercabangan,bisa dengan cara menyerupai ini $data_nisn>1 atau $data_nisn>0

Post a Comment for "Mencegah Input Data Yang Sama Ke Mysql Memakai Php"