Postingan lainnya
Validasi nip dan no hp rest api codeigniter
saya membuat register rest api di codeigniter, saya mau data nip dan no hp yang masuk ke database itu tidak ada yang sama. pas saya test malah statusnya null
ini kode saya
public function register($nama,$nip,$no_hp,$pass,$keanggotaan) {
$sql = $this->db->query("SELECT * FROM users_app where nip='$nip' or 'no_hp' = '$no_hp' "); $cek = $sql->num_rows(); var_dump($cek);
if ($cek > 0){ $cek[] = array('message' => 'NIP Telah digunakan'); } else { if($nama =="" || $nip =="" || $no_hp =="" || $pass =="" || $keanggotaan =="") { return false; } else { $arraySave = array( 'nama' => $nama, 'nip' => $nip, 'no_hp' => $no_hp, 'pass' => password_hash($pass, PASSWORD_BCRYPT), 'keanggotaan' => $keanggotaan); return $this->db->insert("users_app", $arraySave); } }}
3 Jawaban:
mungkin itu bisa diperbaiki dibagian conditional nya . struktur nya seperti berikut
<pre> if {
kondisi 1
} else if () {
kondisi 2
} else {
kondisi 3
} </pre>
cobain gan <pre> <?php
public function register($nama,$nip,$no_hp,$pass,$keanggotaan) { $sql = $this->db->query("SELECT * FROM users_app WHERE nip='$nip' OR no_hp = '$no_hp' "); $cek = $sql->num_rows(); var_dump($cek);
if ($cek &gt; 0){
$cek[] = array('message' =&gt; 'NIP Telah digunakan');
} else {
if($nama =="" || $nip =="" || $no_hp =="" || $pass =="" || $keanggotaan =="") {
return false;
} else {
$arraySave = array( 'nama' =&gt; $nama,
'nip' =&gt; $nip,
'no_hp' =&gt; $no_hp,
'pass' =&gt; password_hash($pass, PASSWORD_BCRYPT),
'keanggotaan' =&gt; $keanggotaan);
return $this-&gt;db-&gt;insert("users_app", $arraySave);
}
}
}
?> </pre>
Cara paling simple di set pada databasenya, nip dan nomor handphone jadi unique key. Sehingga jika ada insert dengan nip atau nomor handphone yang sama langsung di reject oleh database, pada codeigniter kita tinggal ambil error response dari database.
Ada satu lagi cara yang sudah disediakan oleh codeigniter, dengan menggunakan library form validation.
tinggal set rules : is_unique[namaTable.namaCell] contoh : is_unique[users_app.nip]