
Membuat Sistem Pencarian / Search Data Database di PHP (MySQLi Statement)
Search Data PHP
Dalam pembuatan sistem pencarian / search system di PHP itu banyak sekali caranya tapi pada postingan ini saya menjelaskan tentang membuat sistem pencarian di PHP menggunakan MySQLi Statement dan action form. Action form ini artinya kita mengambil aksi / tindakan sebuah sistem yang ada di dalam url / file / parameter yang bersangkutan. Pada tutorial kali ini juga akan menjelaskan sistem pencarian dengan method post pada formulirnya pencariannya.
Form Pencarian
Dalam membuat sistem pencarian tentu memerlukan formulir / kolom / bidang terlebih dahulu untuk mencari data dari database yang bersangkutan, buatlah formulir dengan bidang yang akan dijadikan sebagai input text untuk mencari data dari database dengan huruf misalnya seperti ini:
<form class="form-horizontal" role="search" method="post" action="index.php?cari-akun"> <div class="col-md-8 col-xs-12"> <input type="text" name="keyword" class="form-control" placeholder="Cari Akun Disini..."> </div> <div class="col-md-4"> <button class="btn btn-default" type="submit" name="submit-cari-akun">Cari Akun</button> </div> </form>
action pada form diatas diarahkan ke index.php parameter cari-akun artinya sistem pencarian dari formulir ini adalah sistem yang ada di URL index.php?cari-akun.
Karena ini berupa parameter maka kalian perlu membuat parameter terlebih dahulu di halaman home / berandanya (index.php). Supaya ketika URL mengarah ke parameter cari-akun menampilkan isi dari sebuah file (misalnya cari-akun.php) maka buatlah kondisi di index.php nya seperti ini:
Baca Juga:
if(isset($_GET['cari-akun'])) { include "assets/includes/cari-akun.php"; }
Artinya ketika mengarah ke parameter cari-akun akan menampilkan isi dari file cari-akun.php, assets/includes/ adalah lokasi penyimpanan file cari-akun.php nya silahkan sesuaikan lokasi dimana kalian menyimpannya.
Karena sudah ditentukan ketika mengarah ke parameter cari-akun akan menampilkan isi dari file cari-akun.php maka sekarang silahkan buat file baru dengan nama cari-akun.php (simpan file ini dilokasi yang sesuai dengan pemanggilan assets/includes/ tadi).
Halaman Pencarian (Sistem Pencarian)
Laman pencarian ini biasanya berupa table / daftar yang tersusun, sehingga ketika data yang dicari atau menyerupai kata kunci yang diketik pada kolom pencarian memiliki banyak hasil pencarian akan menampilkannya sebagai daftar / list. Maka dari itu, saya contohkan berupa table dalam menampilkan menampilkan hasil pencarian misalnya seperti ini:
<table class="table table-striped"> <thead> <th class="text-center">ID</th> <th class="text-center">Nama</th> <th class="text-center">Jurusan</th> <th class="text-center">Semester</th> <th class="text-center">Status Akun</th> <th colspan="2"></th> </thead> <tbody style="height: 100vh;"> <?php if(mysqli_num_rows($query)) {?> <?php while($row = mysqli_fetch_array($query)) {?> <tr> <td class="text-center"><?php echo $row['id'] ?></td> <td class="text-center"><?php echo $row['username'] ?></td> <td class="text-center"><?php echo $row['nama_jurusan'] ?></td> <td class="text-center"><?php echo $row['semester'] ?></td> <td class="text-center"><?php echo $row['nama_statusakun'] ?></td> <td><button class="btn btn-info"><a href="index.php?update-akun=<?php echo $row['id'] ?>">Update</a></button></td> <td><button class="btn btn-danger"><a href="index.php?delete-akun=<?php echo $row['id'] ?>">Hapus</a></button></td> </tr> <?php } ?> <?php } ?> </tbody> </table>
Ini hanya contoh bagian table nya saja, untuk keseluruhan halaman silahkan sesuaikan sendiri sesuai selera atau jika sudah ada tinggal salin kode diatas dan tempelkan di halaman cari-akun.php. Sekarang ketika di Save dan lihat hasilnya, tentu akan ada pemberitahuan error karena table diatas untu kmenampilkan data sedangkan sistemnya belum dibuat, biarkan saja seperti itu sampai tutorial selesai.
Perhatikan 2 tombol di table tersebut, ada tombol Update dan Hapus itu bukan sekedar hiasan semata. Kalian bisa ikuti tutorial cara membuat sistem edit/update & delete data database di PHP untuk mengetahui lebih lanjut atau hapus saja tombol itu jika tidak diperlukan.
Sekarang, kita membuat sistem pencariannya. Silahkan tambahkan code berikut dibagian atas dari file cari-akun.php seperti biasa kalian menerapkan sebuah sistem di file-file PHP lainnya:
<?php if(isset($_POST['submit-cari-akun'])) { $_SESSION['session_pencarian'] = $_POST['keyword']; $keyword = $_SESSION['session_pencarian']; }else { $keyword = ['session_pencarian']; } $query = mysqli_query($koneksi, "SELECT akun.*, jurusan.nama_jurusan, statusakun.nama_statusakun FROM akun, jurusan, statusakun WHERE akun.id_jurusan = jurusan.id AND id_statusakun = statusakun.id AND akun.username LIKE '%$keyword%' ORDER BY akun.username ASC"); ?>
submit-cari-akun disini adalah name dari tombol Cari Akun pada formulir tadi diatas, selanjutnya kita membuat session untuk pencarian agar dapat menampilkan data yang sesua dengan kata kunci yang diketik & dicari di formulir pencarian tadi. Nama session ini bisa ditentukan sesuai selera, selanjutnya buatlah query untuk menampilkan data dari database tapi ada sedikit perbedaan.
Klik disini untuk mempelajari lebih lanjut tentang menampilkan data single dari database di PHP atau klik disini untuk menampilkan multiple data dari database di table PHP. Supaya bisa menyesuaikan data apa saja yang ingin ditampilkan dihasil pencarian.
Pada tutorial ini saya contohkan dengan menampilkan data akun di table database dan kata kunci pencarian yang diketik di formulir pencarian dihubungkan dengan kolom username di database maka tertulis akun.username LIKE ‘%$keyword%’. Jadi, ketika seseorang mencari dengan kata kunci “UC” dan di table akun database kolom username nya terdapat data yang menyerupai “UC” akan ditampilkan.
Catatan: Jika tidak ingin menghubungkan kata kunci dengan kolom username silahkan diganti misalnya menjadi akun.email LIKE ‘%$keyword%’ maka hasilnya menampilkan data dari kolom email yang mirip dengan kata kunci pencarian.
Selesai, silahkan Save dan lihat hasilnya. Sekarang sudah berhasil membuat sistem pencarian untuk table akun, silahkan explore sendiri sistem pencarian ini untuk table database lainnya misalnya artikel / post.
Masih bingung ? Lihat : Video tutorial sistem pencarian data ini disini.
Penampilan data yang dibuat di $query harus disesuaikan dengan data yang ingin ditampilkan dihalaman hasil pencarian, misalnya sudah punya halaman daftar akun dan halaman pencarian ini ingin disamakan dengan halaman daftar akun tinggal di copas aja dari halaman daftar akun tersebut ke halaman hasil pencarian (cari-akun.php) yang penting LIKE ‘%$keyword$’ nya harus sesuai dengan kolom database mana yang ingin dihubungkan.
Selamat mencoba !