Membuat CRUD data Siswa PHPMYSQli
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 :
- Membuat file koneksi php mysqli (koneksi.php)
- Membuat input data siswa dengan php mysqli (tambah.php)
- Menampilkan data dari database dengan php mysqli (tampil.php)
- Membuat Edit data dengan PHP mysqli (edit.php)
- 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
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
- koneksi.php
- index.php
- tampil.php
- tambah.php
- edit.php
- proses.php
- 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'>×</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");
}
}
}
?>