PWPB | Search dan Ordering PHP
Search dan Ordering pada PHP
Assalamualaikum, bagaimana kabarnya teman teman semua sudah lama saya tidak upload blog terbaru karena ada beberapa kesibukan akhir akhir ini. Pada blog kali ini saya akan melanjutkan materi PHP lanjutan dari CRUD yaitu Search dan Ordering Data . Langsung saja siapkan xampp seperti biasa dan text editor masing-masing.
Langkah Pertama
buka file v_index di file views yang kita sudah buat di pertemuan-pertemuan sebelumnya dan tambahkan fitur search dan ordering seperti di bawah ini.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Muhamamd Fahru Rozi XI RPL 2</title>
<script src="https://kit.fontawesome.com/503eca56fe.js"></script>
</head>
<body>
<center>
<div class="judul">
<div class="smk">
<img src="Assets/img/smk.png" width="50%">
</div>
<div class="jdl"><br><br>
<h1>Data Siswa SMK Negeri 4 Bandung</h1>
</div>
<div class="ava">
<img src="Assets/img/ava.png" width="50%">
</div>
</div>
<!-- Tambahan Fitur Search -->
<div class="search">
<form method="GET" action="index.php">
<label for="search">Cari Data</label>
<input type="text" name="search" id="search" value="<?= @$search ?>" autocomplete="off">
<button type="submit" name="cari" id="tombol-cari">Cari</button>
</form>
<form action="">
<button type="submit" style="margin-left: 5px;">Data Semula</button>
</form>
</div>
<!-- Tambahan Fitur Ordering -->
<table border="1" cellspacing="1" width="90%">
<thead>
<tr>
<th>No</th>
<th>
NIS
<a href="index.php?sort=nis&order=asc">Δ</a>
<a href="index.php?sort=nis&order=desc">∇</a>
</th>
<th>
Nama Lengkap
<a href="index.php?sort=nama_lengkap&order=asc">Δ</a>
<a href="index.php?sort=nama_lengkap&order=desc">∇</a>
</th>
<th>
Jenis Kelamin
<a href="index.php?sort=jenis_kelamin&order=asc">Δ</a>
<a href="index.php?sort=jenis_kelamin&order=desc">∇</a>
</th>
<th>
Kelas
<a href="index.php?sort=kelas&order=asc">Δ</a>
<a href="index.php?sort=kelas&order=desc">∇</a>
</th>
<th>
Jurusan
<a href="index.php?sort=jurusan&order=asc">Δ</a>
<a href="index.php?sort=jurusan&order=desc">∇</a>
</th>
<th>
Alamat
<a href="index.php?sort=alamat&order=asc">Δ</a>
<a href="index.php?sort=alamat&order=desc">∇</a>
</th>
<th>
Golongan Darah
<a href="index.php?sort=golongan_darah&order=asc">Δ</a>
<a href="index.php?sort=golongan_darah&order=desc">∇</a>
</th>
<th>
Nama Ibu
<a href="index.php?sort=nama_ibu&order=asc">Δ</a>
<a href="index.php?sort=nama_ibu&order=desc">∇</a>
</th>
<th>
Nama Ayah
<a href="index.php?sort=nama_ayah&order=asc">Δ</a>
<a href="index.php?sort=nama_ayah&order=desc">∇</a>
</th>
<th colspan="2">Aksi</th>
</tr>
</thead>
<tbody>
<?php
$i = 1;
while ($siswa = @$list_siswa->fetch_array()) {
?>
<tr align="center">
<td height="40"><?= $i++ ?></td>
<td><?= $siswa['nis'] ?></td>
<td><?= $siswa['nama_lengkap']?></td>
<td><?= $siswa['jenis_kelamin']?></td>
<td><?= $siswa['kelas']?></td>
<td><?= $siswa['jurusan']?></td>
<td><?= $siswa['alamat']?></td>
<td><?= $siswa['golongan_darah']?></td>
<td><?= $siswa['nama_ibu']?></td>
<td><?= $siswa['nama_ayah']?></td>
<!-- link untuk mengedit data -->
<td><a href="edit.php?nis=<?= $siswa['nis']?>" name="edit"><div class="edit"><div class="br"></div>Edit</div></a></td>
<!-- link untuk menghapus data -->
<td><a href="delete.php?nis=<?= $siswa['nis']?>" onclick="return confirm('Yakin Mau Menghapus Data ini ?');" name="edit"><div class="delete"><div class="br"></div>Delete</div></a></td>
</tr>
<?php } ?>
</tbody>
</table>
<br><br>
<!-- Digunakan untuk membuat link yang mengarah ke file tambah.php -->
<a href="tambah.php">
<div class="add">
<h4>Tambahkan Data</h4>
<img src="Assets/img/plus.png" width="20%" class="plus">
</div>
</a>
</center>
</body>
</html>
Hasilnya Akan seperti di bawah ini :
Langkah Kedua
Buka file index.php dan masukan sql seperti di bawah ini :
<?php
include'lib/library.php';
$sql = 'SELECT * FROM siswa';
// Searching
// Untuk Mengambil data yang di serach
$search = @$_GET['search'];
// Jika variable $search tidak kosong (artinya user mengisi inputan search pada form) maka, tambahkan sintaks SQL untuk mencari data
// sql untuk mencari data
if(!empty($search)) $sql .= " WHERE
nis LIKE '%$search%' OR
nama_lengkap LIKE '%$search%' OR
jenis_kelamin LIKE '%$search%' OR
kelas LIKE '%$search%' OR
jurusan LIKE '%$search%' OR
alamat LIKE '%$search%' OR
golongan_darah LIKE '%$search%'
";
// Ordering
$order_field = @$_GET ['sort']; // Mengambil Field yang akan di order
$order_mode = @$_GET ['order']; // Mengambil Mode nya, Asceding atau Descending
// Jika variable $order_field dan $order_mode tidak kosong (artinya user mengklik tombol sort pada tabel) maka, tambahkan sintaks SQL untuk melakukan ordering berdasarkan kolom yang diklik
if(!empty($order_field) && !empty($order_mode)) $sql .= " ORDER BY $order_field $order_mode";
$list_siswa = $mysqli->query($sql);
include'views/v_index.php';
?>
<link rel="stylesheet" type="text/css" href="Assets/css/style.css">>
Penjelasan ada di kodingan
Studi Kasus ( Hasil )
1. Search data dengan nama Muhammad Fahru Rozi maka akan muncul seperti di bawah ini :
2. Mencoba fitur Ordering , Mengurutkan nama - nama siswa dari abjad terakhir, maka akan muncul seperti di bawah ini :
3. Mencoba fitur Ordering , Mengurutkan dari kelas, maka akan muncul seperti di bawah ini :
4. Fitur data semula, mengembalikkan data yang telah diordering maupun disearch ke data semula
Cukup sekian materi yang dapat saya jelaskan pada blog kali ini semoga dapat bermanfaat untuk kawan kawan yang membaca blog ini dan sampai jumpa di blog selanjutnya.
Wassalamualaikum wr wb

0 Comments