Postingan lainnya
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
Membuat Kode Otomatis Dengan PHP Mysqli Prosedural
Halaman saat register User
<?php require_once "core/init.php";
$error='';
if( isset($_POST['submit']) ){
$nama = $_POST['username'];
$email = $_POST['email'];
$alamat = $_POST['alamat'];
$telp = $_POST['telp'];
$pass = $_POST['password'];
if(!empty(trim($nama)) && !empty(trim($email)) && !empty(trim($alamat)) && !empty(trim($telp)) && !empty(trim($pass)) ){
if(register_cek_nama($nama) ){
//memasukan database
if(register_user($nama, $email, $alamat, $telp, $pass)) {
$error= 'berhasil daftar register';
}else{
$error= 'gagal register';}
}else{
$error= ' nama sudah ada, tidak bisa daftar ';}
}else{
$error= 'form tidak boleh kosong';
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<!-- Latest compiled and minified css -->
<link rel="stylesheet" href="view/css/bootstrap.min.css">
<!-- optional theme-->
<link rel="stylesheet" href="view/css/bootstrap-theme.min.css">
<!--my custom css-->
<link rel="stylesheet" href="view/css/style.css">
<!--font-awesome-->
<link rel="stylesheet" href="view/font-awesome/css/font-awesome.min.css">
<!---------------------------------->
<style>
body{
font-family: arial monospace;
background-color :#eee;
}
.container{
display: flex;
align-items: center;
justify-content: center;}
.page{
padding:5px;
margin-top: 40px;
margin-bottom: 40px;
height: 510px;
width: 400px;
background: #fff;
}
.content{
height: 100%;
padding: 40px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}
.logo-register h2{
font-family:Chaparral Pro Light;
font-weight: bold;
}
.logo-register h5{
font-family: calibri;
color:#808080;
border-bottom:1px solid #eee;
padding-bottom: 5px;
}
.form-group .form-control{
border-radius: 0;
border:1px solid #eee;
padding: 5px;
}
.bawah-submit h5{ font-family: calibri;
color:#808080;}
.punya-akun h5{font-family: calibri;
color:#808080;}
#error{color: rgb(212, 19, 65);
}
</style>
</head>
<body>
<div class="container">
<div class="page">
<div class="content">
<div class="row">
<div class="logo-register">
<h2><a href="index.php">Wherco</a></h2>
<h5>Buat akun untuk melakukan order</h5>
</div>
<?php
if(isset($_SESSION['msg'])) { ?>
<div id="error">
<?php echo $_SESSION['msg'];
unset($_SESSION['msg']); ?>
</div> <br>
<?php } ?>
<?php if($error != ' '){ ?>
<div id="error">
<?php echo $error; ?>
</div>
<?php } ?>
<form class="form-horizontal" action="register.php" method="post">
<div class="form-group">
<input type="text" class="form-control" style="text-transform:lowercase;" name="username" placeholder="Nama lengkap" Required autofocus>
</div>
<div class="form-group">
<input type="email" class="form-control" name="email" placeholder="Alamat email" Required>
</div>
<div class="form-group">
<textarea class="form-control" rows="3" name="alamat" placeholder="Alamat tinggal" Required autofocus ></textarea>
</div>
<div class="form-group">
<input type="number" class="form-control" name="telp" placeholder="Nomer yang bisa di hubungi" Required>
</div>
<div class="form-group">
<input type="password" style="text-transform:lowercase;" class="form-control" name="password" id="exampleInputEmail1" placeholder="Kata sandi untuk akun order" Required>
</div>
<div class="form-group">
<input type="submit" name="submit" class="btn btn-info btn-block" value="Daftar">
</div>
<div class="bawah-submit">
<h5> Dengan mendaftar anda menyetujui Ketentuan<br>
dan Kebijakan Privasi kami </h5>
</div>
<div class="punya-akun">
<h5> Punya akun? <a href="login.php">Masuk</a> </h5>
</div>
</div>
</div>
</div>
</div
function register user
<?php
function register_user($nama, $email, $alamat, $telp, $pass){
global $connect;
//mencegah sql injection
$nama = mysqli_real_escape_string($connect, $nama);
$email = mysqli_real_escape_string($connect, $email);
$alamat = mysqli_real_escape_string($connect, $alamat);
$telp = mysqli_real_escape_string($connect, $telp);
$pass = mysqli_real_escape_string($connect, $pass);
//ssebelum insert kita haru mmengubah sebelumnya dengana hash
$pass = password_hash($pass, PASSWORD_DEFAULT);
$query = "INSERT INTO pelanggan (username, email, alamat, telp, password) VALUES ('$nama', '$email', '$alamat', '$telp', '$pass')";
if( mysqli_query($connect, $query) ){
return true;
}else{
return false;
}
}
Pertanyaan saya bagaimana cara membuat id dari kode saya menambahkan text otomatis contoh: id "02" menjadi "pelanggan02" atau "p02"
terimakasih.
11 Jawaban:
Dalam code anda tidak kelihatan input untuk "id", jadi saya asumsikan id AUTOINCREMENT dan INTEGER. Setau saya tidak bisa memasukkan "pelanggan02" atau "p02" ke kolom INTEGER. Kecuali ada 1 kolom lagi berupa STRING
Misalkan uniqueid VARCHAR, jadi sekedar gambaran:
$newid = "SELECT (MAX(id)+1) FROM table";
$query = "INSERT INTO pelanggan (uniqueid, username, email, alamat, telp, password) VALUES ( CONCAT('pelangan',$newid), '$nama', '$email', '$alamat', '$telp', '$pass' )";
makasih responnya. saya id pakek auto incremen dia kan udah otomatis 1-2-3-4-5 dst, maksud saya dsini bagaimana pas saya insert dia nambah lah mas seperti yang saya jelaskan sebelumnya, bisa menjadi pelanggan02 atau p3. termakash
maksudnya id nya itu auto increment tapi isinya pelanggan1, pelanggan2, pelanggan3 gitu?
Ga bisa Mas. id autoincrement berarti bertipe integer (angka) anda paksa masukkan input 'pelanggan02'. 'pelanggan02' ini string bukan integer, kecuali anda terapkan seperti yang saya sebutkan di atas.
Referensi: https://sekolahkoding.com/forum/bagaiman-cara-primary-key-auto-increment-dengan-kode-huruf
syaa pernah liat. di program barang dia membuat kode otomatis dengan idnya contoh brg0976. itu gimana mas cara kerjanya ? bedaya saya disini saya mau di hidden di belakang layar, user yang menggunakan tidak tahu.
ga bisa, auto increment hanya untuk INT value. lebih baik tambahkan kolom varchar misalnya `id_slug` pada tabel dan proses insert pakai transaksi. jadi pada saat insert, kolom `id_slug` dikosongin dulu, setelah insert berhasil itu data langsung diupdate `id_slug`nya dengan value 'pelanggan' + last_insert_id. kalau kedua proses (insert dan update) berhasil, transaksi di commit, kalau ada yg gagal di rollback.
sebenernya pakai cara @mltobing juga bisa, hanya kekurangannya bila kita tidak sengaja atau perlu menghapus data terakhir, maka kolom `id` dan `uniqueid` ga bisa cocok. misalnya `id` terakhir di database adalah 15, kalau kita hapus itu id 15 dan manambahkan data baru, kolom `id` otomatis 16 karena autoincrement, tapi `uniqueid` jadinya pelanggan15 karena (MAX(id)+1) adalah 14+1. kalau bisa memastikan bahwa tidak akan terjadi penghapusan pada database, cara @mltobing lebih simple.
sudah ketemu gan, terimakasih responnya