Membuat CRUD dengan PHP MySQLi

PlajariKode - CRUD dengan PHP MySQLi

Belajar PHP - Membuat CRUD dengan PHP MySQLi.

Dalam pemrograman komputer, Create, Read, Update dan Delete (CRUD) adalah empat fungsi dasar penyimpanan pada database.

Kadang kala digunakan ketika mendefinisikan empat fungsi dasar CRUD, seperti membuat atau menambahkan data disebut Create, mengambil data disebut Read, memodifikasi disebut Update, dan menghancurkan atau menghapus disebut dengan Delete.

MySQLi

Ekstensi MySQLi (MySQL Improved) adalah driver database relasional yang digunakan dalam bahasa scripting PHP untuk menyediakan antarmuka dengan database MySQL.

Perbedaan MySQL dengan MySQLi 

Pada dasarnya, MySQL adalah database driver lama, dan MySQLi adalah driver peningkatannya. Huruf "i" pada MySQLi merupakan singkatan dari  "Improved ".

MySQLi dapat dilakukan dengan cara prosedural dan berorientasi objek, sedangkan MySQL hanya dapat digunakan secara prosedural saja.

Baiklah.. Langsung saja berikut adalah kode untuk CRUD dengan PHP MySQLi.

Artikel terkait: Pencarian data menggunakan PHP

Database

Pertama buat dulu databasenya, disini saya buat database dengan nama test dan didalamnya terdapat tabel dengan nama produk.

Struktur tabelnya akan seperti berikut:

PlajariKode - Struktur tabel produk

Pastekan kode berikut pada menu SQL untuk membuat database beserta tabel didalamnya.
--
-- Database: `test`
--

CREATE DATABASE IF NOT EXISTS `test`; -- buat database test jika belum ada
USE `test`; -- gunakan database test

--
-- Struktur dari tabel `produk`
--

CREATE TABLE `produk` (
  `id_produk` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `nama_produk` varchar(50) NOT NULL,
  `harga` int(11) NOT NULL,
  `qty` int(11) NOT NULL 
);

koneksi.php

Untuk menyambungkan ke database tentunya kita membutuhkan koneksi, berikut kodenya.
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$db_name = 'test'; // nama databasenya
$conn = new mysqli($host, $username, $password, $db_name);
?>

index.php

Pertama kita buat file index.php ini untuk menampilkan (Read) semua data dari database dan juga terdapat form untuk menambahkan (Create) data.
<?php
// panggil koneksinya
require_once 'koneksi.php';
?>

<!DOCTYPE html>
<html>
<head>
  <title>PLajariKode - CRUD dengan PHP MySQLi</title>
</head>
<body>
  <h1>PlajariKode - CRUD dengan PHP MySQLi</h1>
  
  <!-- 
  Create atau menambahkan data baru 
  Data akan dikirimkan ke add.php untuk diproses
  -->
  <form method="post" action="add.php">
    <input type="text" name="nama_produk" placeholder="Nama Produk">
    <input type="number" name="harga" placeholder="Harga">
    <input type="number" name="qty" placeholder="Qty">
    <input type="submit" name="submit" value="Tambah Data">
  </form><br/>

  <!-- Read atau menampilkan data dari database -->
  <table border="1">
    <tr>
      <th>No.</th> <th>Nama Produk</th>
      <th>Harga</th>
      <th>Qty</th>
      <th colspan="2">Aksi</th>
    </tr>

    <?php
    // Tampilkan semua data
    $q = $conn->query("SELECT * FROM produk");

    $no = 1; // nomor urut
    while ($dt = $q->fetch_assoc()) :
    ?>

    <tr>  
      <td><?= $no++ ?></td>
      <td><?= $dt['nama_produk'] ?></td>
      <td><?= $dt['harga'] ?></td>
      <td><?= $dt['qty'] ?></td>
      <td><a href="update.php?id=<?= $dt['id_produk'] ?>">Ubah</a></td>
      <td><a href="delete.php?id=<?= $dt['id_produk'] ?>" onclick="return confirm('Anda yakin akan menghapus data ini?')">Hapus</a></td>
    </tr>

    <?php
    endwhile;
    ?> 

  </table>
</body>
</html>

Output:

PlajariKode - Output halaman index

add.php

Pada file ini kita membuat kode untuk proses penambahan (Insert) data ke database.
 <?php

require_once 'koneksi.php';

if (isset($_POST['submit'])) {
  $n_produk = $_POST['nama_produk'];
  $harga = $_POST['harga'];
  $qty = $_POST['qty'];

  // id_produk bernilai '' karena kita set auto increment
  $q = $conn->query("INSERT INTO produk VALUES ('', '$n_produk', '$harga', '$qty')");

  if ($q) {
    // pesan jika data tersimpan
    echo "<script>alert('Data produk berhasil ditambahkan'); window.location.href='index.php'</script>";
  } else {
    // pesan jika data gagal disimpan
    echo "<script>alert('Data produk gagal ditambahkan'); window.location.href='index.php'</script>";
  }
} else {
  // jika coba akses langsung halaman ini akan diredirect ke halaman index
  header('Location: index.php');
}

update.php

Pada file ini kita akan menampilkan kembali data yang akan diubah.
<?php

require_once 'koneksi.php';

// cek id
if (isset($_GET['id'])) {
  $id = $_GET['id'];

  // ambil data berdasarkan id_produk
  $q = $conn->query("SELECT * FROM produk WHERE id_produk = '$id'");

  foreach ($q as $dt) :
  ?>

  <h1>PlajariKode - CRUD dengan PHP MySQL</h1>
  <h2>Halaman Ubah Data</h2>

  <form action="proses_update.php" method="post">
    <input type="hidden" name="id_produk" value="<?= $dt['id_produk'] ?>">
    <input type="text" name="nama_produk" value="<?= $dt['nama_produk'] ?>">
    <input type="number" name="harga" value="<?= $dt['harga'] ?>">
    <input type="number" name="qty" value="<?= $dt['qty'] ?>">
    <input type="submit" name="submit" value="Ubah Data">
  </form>

  <?php
  endforeach;
}

Output:

PlajariKode - Output halaman update

proses_update.php

Data yang diubah pada halaman update akan dikirimkan kesini untuk proses perubahan (Update) data.
<?php

require_once 'koneksi.php';

if (isset($_POST['submit'])) {
  $id = $_POST['id_produk'];
  $n_produk = $_POST['nama_produk'];
  $harga = $_POST['harga'];
  $qty = $_POST['qty'];
  
  // update data berdasarkan id_produk yg dikirimkan
  $q = $conn->query("UPDATE produk SET nama_produk = '$n_produk', harga = '$harga', qty = '$qty' WHERE id_produk = '$id'");

  if ($q) {
    // pesan jika data berubah
    echo "<script>alert('Data produk berhasil diubah'); window.location.href='index.php'</script>";
  } else {
    // pesan jika data gagal diubah
    echo "<script>alert('Data produk gagal diubah'); window.location.href='index.php'</script>";
  }
} else {
  // jika coba akses langsung halaman ini akan diredirect ke halaman index
  header('Location: index.php');
}

delete.php

Dan yang terakhir yaitu hapus (Delete) data dari database.
<?php

require_once 'koneksi.php';

// cek id
if (isset($_GET['id'])) {
  $id = $_GET['id'];

  // perintah hapus data berdasarkan id yang dikirimkan
  $q = $conn->query("DELETE FROM produk WHERE id_produk = '$id'");

  // cek perintah
  if ($q) {
    // pesan apabila hapus berhasil
    echo "<script>alert('Data berhasil dihapus'); window.location.href='index.php'</script>";
  } else {
    // pesan apabila hapus gagal
    echo "<script>alert('Data berhasil dihapus'); window.location.href='index.php'</script>";
  }
} else {
  // jika mencoba akses langsung ke file ini akan diredirect ke halaman index
  header('Location:index.php');
}

Nah.. Itu saja untuk CRUD sederhana dengan PHP MySQLi. Selamat mencoba dan terimakasih.

Artikel terkait: Pencarian data menggunakan PHP

Posting Komentar

2 Komentar