Tutorial PHP Membuat Multiple Delete dengan Checkbox

 
 
multiple delete php mysql

 
Didalam kasus tertentu kita mungkin sistem kita memerlukan sebuah kemampuan seperti melakukan multiple update atau delete, tujuannya tentu saja untuk mempermudah pengguna itu sendiri, karena jika hanya bisa dilakukan satu persatu tentu saja dalam case tertentu, hal tersebut akan sangat merepotkan.

Tutorial PHP Membuat Multiple Delete dengan Checkbox

Kode ditulis dengan gaya php procedural style 
 
Pertama buat dulu sebuah database dengan tabel yang sudah terisi data supaya lebih mudah untuk mencontohkannya, atau bisa eksekusi query berikut untuk membuat data baru di database MySQL

Kode query

-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 27 Sep 2020 pada 03.55
-- Versi Server: 10.1.13-MariaDB
-- PHP Version: 5.6.20

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `codexam`
--

-- --------------------------------------------------------

--
-- Struktur dari tabel `tabel1`
--

CREATE TABLE `tabel1` (
  `id` int(2) NOT NULL,
  `nama_karyawan` varchar(35) NOT NULL,
  `nip` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `tabel1`
--

INSERT INTO `tabel1` (`id`, `nama_karyawan`, `nip`) VALUES
(1, 'Ahmad Z', '20200801'),
(2, 'Denada Afsari', '20200802');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tabel1`
--
ALTER TABLE `tabel1`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `nip` (`nip`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `tabel1`
--
ALTER TABLE `tabel1`
  MODIFY `id` int(2) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


Selanjutnya buat sebuah koneksi ke database

File koneksi.php
  
  <?php

define('HOST','localhost');
define('USER', 'root');
define('PASS', '');
define('DB','codexam');

$koneksi = new mysqli(HOST,USER, PASS, DB);
if($koneksi==false):
	die("Gagal melakukan koneksi ke database :".$koneksi->connect_error());
endif;
?>
  
  
Membuat Fungsi untuk melakukan operasi menampilkan dan mendelete data. Menurut saya operasi ke databasenya lebih dianjurkan dipisahkan atau dibuat didalam fungsi, supaya lebih gampang dalam pemeriksaan kode jika misal terjadi error.

File fungsi.php

<?php



#Select tabel 1 karayawan 
#sebenarnya buat querynya bisa lebih disederhanakan lagi
#kalian bisa liat channel youtube Ahmad Zaelani dengan playlist CRUD PHP

function selectTb1(){
	global $koneksi;
	$sql="SELECT * FROM tabel1";
	$perintah=mysqli_query($koneksi, $sql);
	if(!$perintah) die("Gagal memilih tabel : ".$koneksi->connect_error());
	return $perintah;
}
function deleteMultiTb1($data){
	global $koneksi;
	$sql = "DELETE FROM tabel1 WHERE nip IN ($data)";
	$perintah = mysqli_query($koneksi, $sql);
	# Bentuk querynya nanti WHERE nip in (123,12657, dst)
	# Untuk memastikan cek atau jalankan query di database
	if($perintah):
		return true;
	else:
		return false;
	endif;

}


Baca : 

Menampilkan antar muka delete
File index.php



<?php

require_once 'koneksi.php';
require_once 'fungsi.php';
$nip_err ="";
if($_SERVER['REQUEST_METHOD']=='POST'){
	
	/*
	Kalian bisa hapus comment untuk melihat seperti apa bentuk data yang dikirim
	dengan parameter nip[]
	testing data melihat elemen sudah dirubah kedalam array
	$nip = $_POST['nip'];
	print_r($nip);

	echo "<br/>";
	# Mengubah atau menyatukan elemen array dengan tanda pemisah koma
	$im = implode(",", $nip);
	echo $im;
	*/
	if(empty($_POST['nip'])){
		$nip_err = "Pilih salah satu data untuk dihapus";

	}else{
		$nip = $_POST['nip'];
		$nip = implode(",", $nip);
	}

	if(empty($nip_err)){
		//jika sudah tidak ada error, langsung jalankan
		if(deleteMultiTb1($nip)):
			echo "Berhasil hapus";
		else:
			echo "Gagal hapus";
			//echo var_dump($koneksi);
		endif;
	}
}

?>
<!DOCTYPE html>
<html>
<head>
	<title>Multiple Delete PHP</title>
	<link rel="stylesheet" type="text/css" href="vendor/bootstrap/css/bootstrap.min.css">
</head>
<body>

	<div class="container">
			<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
				<table class="table table-bordered mt-4">
					<thead>
						<th colspan="4">MULTIPLE DELETE PHP WITH CHECKBOX</th>
					</thead>
					<thead>
						<th>NO.</th>
						<th>NAMA</th>
						<th>NIP</th>
						<th>DEL</th>
					</thead>
					<tbody>
						
							<?php 
							$no = 1;
							 $data = selectTb1(); //memanggil fungsi query ke tabel 1
							 while($row=mysqli_fetch_array($data)){
							 	echo '
							 	<tr>
							 	<td>'.$no.'</td>
							 	<td>'.$row['nama_karyawan'].'</td>
								<td>'.$row['nip'].'</td>
								<td><input type="checkbox" name="nip[]" value="'.$row['nip'].'"></td>
								</tr>';

							 	$no++;
							 }
							?>
						
					</tbody>					
				</table>
				
				<button type="submit" class="btn btn-primary btn-md">Delete</button>
				<span class="text-danger"><?php echo "<br>".$nip_err; ?></span>

			</form>
	</div>


</body>
</html>




0 Response to "Tutorial PHP Membuat Multiple Delete dengan Checkbox"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin