Cara membuat fitur search dengan php

HomeBelajar PHPMembuat Pencarian data menggunakan PHP dan MySQL

May 30, 2020

Cara membuat fitur search dengan php

Belajar PHP - Pada artikel kali ini kita akan membuat pencarian data sederhana menggunakan PHP dan MySQL.

Disini saya sudah membuat database dengan nama test yang didalamnya terdapat tabel dengan nama tb_produk dengan struktur tabelnya seperti berikut:


dan beberapa data didalam tb_produk.

atau buat databasenya lalu pastekan kode berikut pada menu SQL.

--
-- Struktur dari tabel `tb_produk`
--

CREATE TABLE `tb_produk` (
`id` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`nama_produk` varchar(50) NOT NULL,
`harga` float NOT NULL,
`stok` int(11) NOT NULL
);

--
-- Dumping data untuk tabel `tb_produk`
--

INSERT INTO `tb_produk` (`nama_produk`, `harga`, `stok`) VALUES
('Sony1', 100000, 2),
('Apple1', 200000, 3),
('Samsung1', 300000, 4),
('Apple2', 400000, 5);

Setelah itu buat file PHP, disini saya beri nama index.php.

index.php

<?php
// koneksi
$conn = mysqli_connect("localhost", "root", "", "test");

if (!$conn) {
echo "Koneksi gagal " . mysqli_connect_error();
}
?>

<!DOCTYPE html>
<html>
<head>
<title>Cari data dengan PHP</title>
</head>
<body>
<h2>Data Produk</h2>

<form method="get" action="">
<label for="cari">Cari Produk</label>
<input type="text" name="cari">
</form>
<br/>

<table border="1">
<thead>
<tr>
<td>No.</td>
<td>Nama Produk</td>
<td>Harga</td>
<td>Stok</td>
</tr>
</thead>
<tbody>

<?php
$no = 1;
// tampilkan data tb_produk
$query = mysqli_query($conn, "SELECT * FROM tb_produk");

// kondisi apabila form pencarian diisi
if (isset($_GET['cari'])) {
$query = mysqli_query($conn, "SELECT * FROM tb_produk WHERE nama_produk LIKE '%".$_GET['cari']."%'");
}

while ($dt = mysqli_fetch_assoc($query)) {
?>

<tr>
<td><?= $no++; ?></td>
<td><?= $dt['nama_produk']; ?></td>
<td><?= $dt['harga']; ?></td>
<td><?= $dt['stok']; ?></td>
</tr>

<?php
}
?>

</tbody>
</table>
</body>
</html>

Penjelasan:

// tampilkan data tb_produk
$query = mysqli_query($conn, "SELECT * FROM tb_produk");

// kondisi apabila form pencarian diisi
if (isset($_GET['cari'])) {
$query = mysqli_query($conn, "SELECT * FROM tb_produk WHERE nama_produk LIKE '%".$_GET['cari']."%'");
}

Pada kode diatas variable $query akan menampilkan semua data yang ada dalam tb_produk, terdapat kondisi jika $_GET['cari'] berisi nilai form pencarian maka variable $query hanya akan menampilkan data yang mirip dengan yang dimasukan pada form pencarian.

Dengan menambahkan operator LIKE akan memfilter data yang mirip dengan yang dikirimkan oleh form pencarian.

Link video:
https://www.youtube.com/watch?v=fYW4HGwK424