Membuat CRUD data Siswa PHPMYSQli

Publish Date : 13-08-2024 , dibaca 459 kali, Hari ini dibaca : 1 kali ,0 comments

Halo sahabat , di artikel sebelumnya kita sudah membuat CRUD data gambar di PHP Mysqli , nah sekarang kita akan kembangkan lagi menjadi data siswa , Dalam hal ini kita akan membuat beberapa bagian :

  1. Membuat file koneksi php mysqli (koneksi.php)
  2. Membuat input data siswa dengan php mysqli (tambah.php)
  3. Menampilkan data dari database dengan php mysqli (tampil.php)
  4. Membuat Edit data dengan PHP mysqli (edit.php)
  5. Membuat action form untuk Input dan Update data dengan PHP MYSQLi (proses.php)

Sengaja saya bagi menjadi beberapa bagian file , dengan tujuan untuk memudahkan kita sebagai pemula dalam mempelajari script ini

CRUD Data siswa PHP MYSQLi bootstrap

Demo

Langkah pertama , tentunya kita harus menggunakan TEXT EDITOR , disini saya menggunakan sublime Text , anda boleh menggunakan text editor kesayangan anda sendiri :

Sebelum kita membahas secara detail , disini saya akan berusaha menjabarkan satu persatu apa saja yang kita butuhkan file nya

  1. koneksi.php
  2. index.php
  3. tampil.php
  4. tambah.php
  5. edit.php
  6. proses.php
  7. gambar (merupakan folder untuk tempat menyimpan file gambar kita )

terdapat 6 file , yang nantinya akan kita gunakan untuk membuat CRUD data Siswa dengan PHP MYSQLi ini

crudsiswa/
├── indeks.php
├── koneksi.php
├── tambah.php
├── tampil.php
├── edit.php
├── proses.php
├── gambar (folder untuk menyimpan gambar)

OK , langsung saja , langkah pertama ,disini kita akan membuat database terlebih dahulu

--Membuat Database--

Tentunya kita harus mempersiapkan database kita , disini kita akan membuat database dengan nama db_senterwebs.com ,
berikut ini field yang harus kita buat ,berikut tabelnya :

Name Type
id_siswa int(4)
nis varchar(60)
nama varchar(60)
kelas varchar(60)
jurusan varchar(60)
gambar text

Atau anda bisa menggunakan script dibawah ini , dan jalankan pada query di sql phpmyadmin,berikut script nya :

CREATE TABLE siswa(
    id_siswa int(4) NOT NULL AUTO_INCREMENT,
    nis varchar(60)NOT NULL,
    nama varchar(60),
    kelas varchar(60),
    jurusan varchar(60),
gambar text,
    PRIMARY KEY(id_siswa)
);

 Ok , jika database sudah berhasil kita buat , buka text editor anda , dan langkah selanjutnya adalah , membuat 6 buah file yang nantinya akan kita gunakan dalam project website kita kali ini , tentunya anda harus membuat Folder terlebih dahulu di htdocs dalam xampp anda , sehingga nanti file ini dapat langsung kita jalankan

1. koneksi.php

file koneksi.php , merupakan file yang kita gunakan dalam menghubungkan aplikasi website kita dengan database yang sudah kita buat sebelumnya , yang harus di perhatikan dari script dibawah ini ada tiap-tiap variabel yang kita buat itu harus sesuai dengan setingan database dan server di komputer kita :

<?php
$server = "localhost";
$username = "root";
$password = "";
$database = "db_senterwebs.com"; //database yang sudah kita buat sebelumnya
$koneksi = mysqli_connect($server, $username, $password,$database);
if ( mysqli_connect_errno() ) {
 // Jika koneksi Error tampilkan Pesan.
 exit('Failed to connect to MySQL: ' . mysqli_connect_error());
}
?>

2. index.php

file index.php , meruapakan file utama website kita  , dimana file ini akan tampil pertama pada setiap halaman website

<!DOCTYPE html>
<html>
<head>
    <title>CRUD Data siswa dengan php mysqli Senterwebs.com</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="Author" content="Senterwebs">
    <link rel="shortcut icon" href="https://senterwebs.com/favicon.png">
    <link rel="icon" href="https://senterwebs.com/favicon.png">   
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js">
    </script>
</head>
 
<body>
    <div class="container">
      <div class='text-center text-success'>
            <b><a href="https://senterwebs.com/artikel-693/membuat-crud-data-siswa-phpmysqli.html">Senterwebs.Com Simple CRUD data siswa dengan PHP MYSQLi<br><br></a></b>
  </div>
        <div class="row ">
            <!--Bagian Form -->
            <div class='col-md-4 bg-light'>
       <?php
       include "koneksi.php";
     
            if (empty($_GET['alert'])) {
              echo "";
                } elseif ($_GET['alert'] == 1) {
                    echo "<div class='alert alert-success alert-dismissable'>
                                              <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>
                                              <i class='icon fa fa-check-circle'></i> Sukses!
                                              Query Berhasi dijalankan.
                                            </div>";
                }
        ?>    
         <?php
         //Jika url page=edit panggil edit.php
         if (isset($_GET['page'])== "edit"){
            include "edit.php";
         }
         //Jika tidak
         else{
         // panggil tambah.php
            include "tambah.php";
         }
         ?>
        </div>
        <!-- END Bagian Form -->

        <!--Bagian Table -->
        <div class='col-md-8 '>
            <?php include "tampil.php"; ?>
        </div>
        <!--END Bagian Table -->

    </div>
</div>
</body>
</html>
<script>
    var loadFile = function(event) {
        var image = document.getElementById('output');
        image.src = URL.createObjectURL(event.target.files[0]);
    };
</script>

3. tambah.php

file tambah.php merupakan file yang kita gunakan dalam pembuatan form , untuk menginput file ke dalam database

<form action="proses.php?act=simpan" method="post" enctype="multipart/form-data" name="form" target="_self">
<div class="form-group">
    <label for="">NIS</label>
      <input type="text" name="nis" class="form-control" required>
</div>  
<div class="form-group">
    <label for="">Nama</label>
      <input type="text" name="nama" class="form-control" required>
</div>   
<div class="form-group">
    <label for="">Kelas</label>
      <select name="kelas"  class="form-control"  required>
        <option value="" selected disabled>Pilih Kelas</option>
        <option value="X">X</option>
        <option value="XI">XI</option>
        </select>
</div>   
<div class="form-group">
    <label for="">Jurusan</label>
            <select name="jurusan"  class="form-control"  required>
        <option value="" selected disabled>Pilih Jurusan</option>
        <option value="RPL">RPL</option>
        <option value="TKJ">TKJ</option>
        </select>
</div>             
<div class="form-group">
    <label for="">Image</label>
     <img id="output" width="150" />
      <input type="file" name="gambar" class="form-control" onchange="loadFile(event)" required>
</div>
<div class="form-group">
    <button class="btn btn-success btn-sm" name="submit"
            type="submit">
         Simpan
    </button>
</div>
</form>

 

4. tampil.php

file tampil.php merupakan file yang kita gunakan untuk menampilkan data di dalam database

<table class="table table-striped">
<thead>
<tr>
  <th>No.</th>
  <th>Nis</th>
  <th>Nama</th>
  <th>Kelas</th>
  <th>Jurusan</th>
  <th>Gambar</th>
  <th>Action</th>
</tr>
</thead>
<tbody>
  <?php
      $no = 1;
      $sql = mysqli_query($koneksi,"SELECT * FROM siswa");
      while ($r = mysqli_fetch_array($sql)) {
      echo"
<tr>
  <td>$no</td>
  <td>$r[nis]</td>
  <td>$r[nama]</td>
  <td>$r[kelas]</td>
  <td>$r[jurusan]</td>
  <td><img src='gambar/$r[gambar]' width='60'></td>
  <td><a href='?page=edit&id=$r[id_siswa]'><button type='button' class='btn btn-success'><span class='glyphicon glyphicon-edit'></span> Edit</button></a> ";
  ?>
  <a href='proses.php?act=hapus&id=<?php echo $r['id_siswa'];?>' onClick="return confirm('Yakin akan menghapus Data?')"><button type='button' class='btn btn-danger'><span class='glyphicon glyphicon-remove-sign'>Delete</button></a></td>
</tr>
<?php $no++; } ?>
</tbody>
</table>

5. edit.php

file edit.php merupakan file yang kita gunakan untuk menampilkan data di dalam database ke dalam form ,yang nanti akan kita edit :

<?php
$sql = mysqli_query($koneksi,"SELECT * FROM siswa WHERE id_siswa='$_GET[id]'");
$r = mysqli_fetch_array($sql);
?>
<form action="proses.php?act=update" method="post" enctype="multipart/form-data" name="form" target="_self">
    <div class="form-group">
        <input type='hidden' name='id' value="<?= $r['id_siswa']?>">
        <label for="">NIS</label>
          <input type="text" name="nis" value="<?= $r['nis'] ?>" class="form-control" required>
    </div>
<div class="form-group">
    <label for="">Nama</label>
      <input type="text" name="nama" value="<?= $r['nama'] ?>" class="form-control" required>
</div>   
<div class="form-group">
    <label for="">Kelas</label>
      <select name="kelas"  class="form-control"  required>
        <option value="" selected disabled>Pilih Kelas</option>
        <option value="X" <?php if($r['kelas']=='X'){echo'selected';}?>>X</option>
        <option value="XI" <?php if($r['kelas']=='XI'){echo'selected';}?>>XI</option>
        </select>
</div>   
<div class="form-group">
    <label for="">Jurusan</label>
            <select name="jurusan"  class="form-control"  required>
        <option value="" selected disabled>Pilih Jurusan</option>
        <option value="RPL" <?php if($r['jurusan']=='RPL'){echo'selected';}?>>RPL</option>
    <option value="TKJ" <?php if($r['jurusan']=='TKJ'){echo'selected';}?>>TKJ
        </select>
</div>                   
    <div class="form-group">
        <label for="">Image</label>
         <img  src="gambar/<?= $r['gambar'] ?>" id="output" width="80" />
          <input type="file" name="gambar" class="form-control" onchange="loadFile(event)">
    </div>
    <div class="form-group">
        <button class="btn btn-success btn-sm" name="submit"
                type="submit">
             Upate
        </button>
    </div>
</form>

 

6. proses.php

file proses.php merupakan file yang kita gunakan untuk memproses setiap action

 <?php
 include "koneksi.php";

$nis = $_POST['nis'];
$nama = $_POST['nama'];
$kelas = $_POST['kelas'];
$jurusan = $_POST['jurusan'];
//gambar
$nama_file      = $_FILES['gambar']['name'];
$acak           = rand(1,99);
$nama_file_unik = $acak.$nama_file;
//end gambar

 if ($_GET['act']=="simpan"){
 if(isset($_POST["submit"])){

if (!empty($nama_file)){
//Upload file gambar ke folder di directory website
move_uploaded_file($_FILES["gambar"]["tmp_name"], "gambar/".$nama_file_unik);

$query = mysqli_query($koneksi, "INSERT INTO siswa
                                (nis,nama,kelas,jurusan,gambar)
                         values ('$nis','$nama','$kelas','$jurusan','$nama_file_unik')")
or die('Ada kesalahan pada query  : '.mysqli_error($koneksi));
    if ($query == TRUE){
         // jika berhasil dijalankan
            header("location: index.php?alert=1");
    }

}
}
}
elseif ($_GET['act']=='update') {
   $id = $_POST['id'];
  if (isset($id)) {

      // Jika tidak kosong gambar           
      if (!empty($nama_file)){
      //Queri menampilkan gambar
      $query = "SELECT gambar FROM siswa WHERE id_siswa='$id'";
      $hapus = mysqli_query($koneksi, $query);
      $r     = mysqli_fetch_array($hapus);
                  //Jika gambar ada
               if ($r['gambar']!=''){
                    $namafile = $r['gambar'];
                    // hapus file gambar yang berhubungan dengan artikel tersebut
                    unlink("gambar/".$namafile);
                  }  

       move_uploaded_file($_FILES["gambar"]["tmp_name"], "gambar/".$nama_file_unik);            
      $query = mysqli_query($koneksi, "UPDATE siswa
         SET nis = '$nis',
             nama = '$nama',
             kelas = '$kelas',
             jurusan = '$jurusan',
             gambar = '$nama_file_unik' WHERE id_siswa='$id'")or die('Ada kesalahan pada query  : '.mysqli_error($koneksi));
      }else{
         $query = mysqli_query($koneksi, "UPDATE siswa
         SET nis = '$nis',
             nama = '$nama',
             kelas = '$kelas',
             jurusan = '$jurusan' WHERE id_siswa='$id'")or die('Ada kesalahan pada query  : '.mysqli_error($koneksi));
      }
      // cek hasil query
      if ($query) {
          // jika berhasil dijalankan
          header("location: index.php?alert=1");
      }
  }
}
elseif ($_GET['act']=='hapus') {
  $id = $_GET['id'];
  if (isset($id)) {
      $query = "SELECT gambar FROM siswa WHERE id_siswa='$id'";
      $hapus = mysqli_query($koneksi, $query);
      $r     = mysqli_fetch_array($hapus);
               if ($r['gambar']!=''){
                    $namafile = $r['gambar'];
                    // hapus file gambar yang berhubungan dengan artikel tersebut
                    unlink("gambar/".$namafile);
                  }
      $query = mysqli_query($koneksi, "DELETE FROM siswa WHERE id_siswa='$id'")or die('Ada kesalahan pada query delete : '.mysqli_error($koneksi));

      // cek hasil query
      if ($query) {
          // jika berhasil dijalankan
          header("location: index.php?alert=1");
      }
  }
    }
?>

Produk Rekomendasi

Artikel Terkait

Diskusi



wa