CRUD PHP NATIVE MYSQLI Data Pelanggan

CRUD PHP NATIVE MYSQLI Data Pelanggan

Selamat malam pengunjung.. pada kesempatan kali ini admin akan membuat tutorial crud php native mysqli studi kasus data pelanggan. tujuannya dibuat artikel ini untuk memahami bagaimana data bisa dibuat, dibaca, diupdate maupun dihapus. menggunakan PHP NATIVE berarti kita tidak memakai php framework hanya saja kita memakai kodingan asli php.

CRUD diterjemahkan dari bahasa inggris yaitu create, read, update, delete. create untuk membuat, read untuk membaca, update untuk merubah dan delete untuk menghapus. pada tutuorial kali ini admin akan membuat CRUD data pelanggan yang kolumnya berupa nama_pelanggan, no_hp, alamat. Untuk koneksi ke database mysqlnya kita akan menggunakan driver mysqli. yaitu fungsi untuk komunikasi kedalam database. kenapa harus menggunakan mysqli?

MYSQLI
Menurut wikipedia: Ekstensi MySQLi adalah penggerak basis data relasional yang digunakan dalam bahasa scripting PHP untuk menyediakan antarmuka dengan basis data MySQL. Ada tiga opsi API utama ketika mempertimbangkan menghubungkan ke server database MySQL: Ekstensi MySQL PHP Ekstensi MySQLi PHP Objek Data PHP. MYSQLI di desin untuk dapat bekerja pada mysql versi 4.1.13 dan versi terbaru. mysqli men support PHP 7, dan mysqli mensupport untuk pemrograman berorientasi objek. Pada artikel ini akan dibahas versi proceduralnya saja.

CARANYA
Diawali dengan membuat tabel didalam database yaitu untuk caranya mengunjungi phpmyadmin di http://localhost/phpmyadmin/ . phpmyadmin adalah alat untuk administrasi mysql yang populer berbasis web dapat dilihat pada tampilan berikut:

Pada xampp sudah tersedia database test jadi kita hanya akan membuat tablenya saja. masukan nama tabel lalu klik kirim. setelah itu kita buatkan kolum kolumnya. untuk id_pelanggan jangan lupa di auto increment kan, fungsinya untuk apa? fungsinya untuk membuat id otomatis berurutan seperti 1,2,3,4. caranya scroll kekanan lalu ceklis pada bagian A_I. kemudian klik tombol simpan.

Jika sudah kita akan mulai masuk kedalam kodingannya :).

Untuk urutannya saya asumsikan seperti ini agar tidak bingung, yaitu membuat file koneksi.php terlebih dahulu. baru file lainnya pada CRUD.

Membuat file koneksi.php

<?php
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "test";
$link = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$link) {
    echo "Tidak bisa koneksi ke MYSQL";
    exit;
}
?>

Membuat tambah data pelanggan
Buat file form_pelanggan.php diisi dengan html form. menggunakan fungsi mysqli_real_escape_string agar inputan lebih aman. Sesuaikan name pada form jadi jika input name = nama_penggan maka pada $_POST juga harus nama_pelanggan: $_POST[‘nama_pelanggan’]. include berfungsi untuk memasukan file koneksi.

<?php
ini_set("error_reporting", 0);
include "koneksi.php";
if(isset($_POST['submit'])){

  $nama_pelanggan = mysqli_real_escape_string($link, $_POST['nama_pelanggan']);
  $nohp_pelanggan = mysqli_real_escape_string($link, $_POST['nohp_pelanggan']);
  $alamat_pelanggan = mysqli_real_escape_string($link, $_POST['alamat_pelanggan']);
  $sql = "insert into tbl_pelanggan(nama_pelanggan, nohp_pelanggan, alamat_pelanggan)values('$nama_pelanggan','$nohp_pelanggan','$alamat_pelanggan')";

  if (mysqli_query($link, $sql)) {
      echo "Data pelanggan disimpan.. [<a href='lihat_data.php'>Lihat Data</a>]";
  }

}else{
  $form = "<p><form action='' method='post'>";
    $form .= "Nama pelanggan: <input type='text' name='nama_pelanggan'><br>";
    $form .= "Nohp pelanggan: <input type='text' name='nohp_pelanggan'><br>";
    $form .= "Alamat pelanggan: <input type='text' name='alamat_pelanggan'><br>";
    $form .= "<input type='submit' name='submit'></form><br>";
    echo $form;
}?>

id_pelanggan tidak dituliskan karena sudah otomatis terisi oleh sistem. ini_set(“error_reporting”, 0); adalah untuk menghilangkan error seperti undefined variable, saat distribusi produksi kita wajib set error_reporting 0.

Membaca data pelanggan

Buat file lihat_data.php untuk menampilkan data. menggunakan mysqli_mun_rows untuk mengecek apakah data ada? dan mysqli_fetch_assoc untuk mengambil data berdasarkan array name

<?php
ini_set("error_reporting", 0);
include "koneksi.php";
$query = "SELECT * FROM tbl_pelanggan"; 
$result = mysqli_query($link, $query);
$num_rows = mysqli_num_rows($result);

if($num_rows>0){ ?>
  <a href='form_pelanggan.php'>Tambah[+]</a><br>
  <table border="1">
    <tr>
      <th>No</th>
      <th>Nama</th>
      <th>Nohp</th>
      <th>Alamat</th>
      <th colspan="2">Action</th>
    </tr>
  <?php $no=0; while ($row = mysqli_fetch_assoc($result)) { $no++; ?>
    <tr>
      <td><?php echo $no;?></td>
      <td><?php echo $row['nama_pelanggan'];?></td>
      <td><?php echo $row['nohp_pelanggan'];?></td>
      <td><?php echo $row['alamat_pelanggan'];?></td>
      <td><button type="button" onclick="window.location='delete.php?&id=<?php echo $key;?>'">Hapus</button></td>
      <td><button type="button" onclick="window.location='edit.php?&id=<?php echo $key;?>'">Edit</button></td>
    </tr>
  <?php } ?>
  </table>
<?php }else{
  echo "Data pelanggan belum ada.. [<a href='form_pelanggan.php'>Tambah data</a>]";
}
?>

Mengedit data pelanggan
Tambahkan input hidden pada form untuk menampung id_pelanggan. kenapa input hidden? agar inputan tersembunyi dan tidak bisa diedit. Simpan file dengan nama edit.php

<?php
ini_set("error_reporting", 0);
include "koneksi.php";
$id = mysqli_real_escape_string($link,$_GET['id']);
// where id pelanggan, dimana id pelanggan harus ada
$query = "SELECT * FROM tbl_pelanggan where id_pelanggan='$id'"; 
$result = mysqli_query($link, $query);
$num_rows = mysqli_num_rows($result);

if($num_rows>0){ $data_pelanggan = mysqli_fetch_assoc($result); ?>
    <p><form action='update.php' method='post'>
    <input type='hidden' name='id_pelanggan' value='<?=$data_pelanggan["id_pelanggan"];?>'>
    Nama pelanggan: <input type='text' name='nama_pelanggan' value='<?=$data_pelanggan["nama_pelanggan"];?>'><br>
    Nohp pelanggan: <input type='text' name='nohp_pelanggan' value='<?=$data_pelanggan["nohp_pelanggan"];?>'><br>
    Alamat pelanggan: <input type='text' name='alamat_pelanggan' value='<?=$data_pelanggan["alamat_pelanggan"];?>'><br>
    <input type='submit' name='update'></form><br>
<?php }else{
  echo "Tidak ada pelanggan dengan id tersebut.. [<a href='form_pelanggan.php'>Tambah data</a>]";
}
?>

Menggunakan <?= sama dengan menggunakan php echo

Update data pelanggan
Menggunakan query update nama_tabel set nama_kolum. Simpan dengan nama update.php

<?php
ini_set("error_reporting", 0);
include "koneksi.php";
if(isset($_POST['update'])){
  $id_pelanggan = mysqli_real_escape_string($link, $_POST['id_pelanggan']);
  $nama_pelanggan = mysqli_real_escape_string($link, $_POST['nama_pelanggan']);
  $nohp_pelanggan = mysqli_real_escape_string($link, $_POST['nohp_pelanggan']);
  $alamat_pelanggan = mysqli_real_escape_string($link, $_POST['alamat_pelanggan']);
  $sql = "update tbl_pelanggan set nama_pelanggan='$nama_pelanggan',nohp_pelanggan='$nohp_pelanggan',alamat_pelanggan='$alamat_pelanggan' where id_pelanggan='$id_pelanggan'";
  if (mysqli_query($link, $sql)) {
      echo "Data pelanggan diupdate.. [<a href='lihat_data.php'>Lihat Data</a>]";
  }
}?>

Menghapus pelanggan
Buat file delete.php. querynya: delete from nama tabel where id_pelanggan

<?php
ini_set("error_reporting", 0);
include "koneksi.php";
$id = mysqli_real_escape_string($link, $_GET['id']);
$sql = "DELETE from tbl_pelanggan where id_pelanggan='$id'";
if (mysqli_query($link, $sql)) {
    echo "Data pelanggan dihapus.. [<a href='lihat_data.php'>Kembali Ke Lihat Data</a>]";
}
?>

OK jika semuanya sudah dibuat lalu simpan pada folder project yang sama. dan jalankan file lihat_data.php contohnya seperti http://localhost/crud/lihat_data.php. Selamat mencoba.. happy coding 🙂

Related posts

Leave a Comment