Cara Membuat Pencarian Multiple di PHP pada Database Mysql
Picture by : # • Post by : Admin@wirneet
Pencarian berdasarkan kata kunci pada data di dalam database sangat diperlukan, untuk pencarian data yang akurat dalam ribuan data dengan menggunakan teknik manual satu per satu akan memakan waktu yang lama, hal ini pasti akan mengalami kesulitan, misalkan saja ada sebuah toko sparepart motor, dimana jumlahnya memiliki banyak kategori dan memiliki ribuan jenis produk, apa jadinya jika ada pelanggan menanyakan barang yang akan dibeli mulai dari merek, stok, harganya pasti membutuhkan waktu yang lama.
Google merupakan salah satu perusahaan raksasa mesin pencari, yang banyak di gunakan sebahagian di dunia, untuk mencari informasi baik itu berita, artikel, video, music dan lain lain, Google hanya dengan menggunakan kata kunci atau keyword pencarian, maka akan tampil di halaman beranda google dalam hitungan detik saja.
Pastinya kita tidak akan meniru sistem pencarian Google, paling tidak kita dapat menggunakan bagaimana cara mencari data di dalam sebuah database yang jumlahnya ribuan dan bahkan jutaan rekord data dalam hitungan detik, tanpa harus membutuhkan banyak waktu.
Kali ini penulis akan sharing tentang bagaimana Cara Membuat Pencarian Multiple di PHP pada Database Mysql dengan teknik yang sangat sederhana, seperti pada website wiblogg.com, tampak seperti dibawah ini.
Penulis akan memberikan source code kepada pembaca untuk dapat dikembangkan, script yang saya bagikan adalah proses pencariannya saja, tidak sampai dengan ajax maupun javascriptnya. Pada kesempatan kali ini penulis mencontohkan dengan menggunakan data barang dan kategori barang, hanya menggunakan 2 tabel saja untuk pencariannya. Berikut dibawah ini tutorialnya
1. Buat Tabel Produk dan Kategori
Siapkan tabel kategori dahulu, berikut dibawah ini struktur tabelnya.
CREATE TABLE `kategori` ( `id` int(12) NOT NULL AUTO_INCREMENT, `nm_ktg` varchar(200) DEFAULT NULL, `hapus` enum('Y','T') DEFAULT 'T', PRIMARY KEY (`id`), KEY `id_nm_ktg` (`id`), FULLTEXT KEY `nm_ktg` (`nm_ktg`) ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;
Selanjutnya siapkan tabel produknya, berikut dibawah ini tabel produknya.
CREATE TABLE `produk` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `id_ktg` int(12) NOT NULL DEFAULT '0', `ktg_produk` int(12) NOT NULL DEFAULT '0', `kode_produk` varchar(50) DEFAULT NULL, `nm_produk` varchar(300) DEFAULT NULL, `deskripsi` varchar(1600) DEFAULT NULL, `berat` varchar(12) DEFAULT NULL, `satuan` varchar(35) DEFAULT NULL, `harga` double DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `kode_produk` (`kode_produk`), KEY `id_ktg` (`id_ktg`), KEY `ktg_produk` (`ktg_produk`), KEY `kode_produk_2` (`kode_produk`), KEY `nm_produk_2` (`nm_produk`), KEY `id_ktg_2` (`id_ktg`), FULLTEXT KEY `nm_produk` (`nm_produk`), FULLTEXT KEY `deskripsi` (`deskripsi`) ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;
Jika tabel sudah terbuat, selanjutnya silakan isi data dummy baik kategori maupun produknya dengan menggunakan phpmyadmin atau editor lainnya.
2. Pencarian
Silakan buat file dengan nama cari_produk.php dan di simpan di folder htdocs, atau pembaca bisa menggunakan folder latihan. Berikut dibawah ini script pencarian data multiple menggunakan bahasa pemrograman PHP.
error_reporting(0);
date_default_timezone_set("Asia/Jakarta");
$host_db="localhost";
$user_db="root";
$pass_db="";
$nama_db="gawean";
$mysqli = new mysqli($host_db,$user_db,$pass_db,$nama_db);
$cari_text ="Gar";
$cari_produk="(";
$cari_kategori="(";
$x=explode(' ',$cari_text);
for($i=0;$i<count($x);$i++){
$cari_produk.="a.nm_produk like '%$x[$i]%' or a.kode_produk like '%$x[$i]%'";
$cari_kategori.="b.nm_ktg like '%$x[$i]%' or a.nm_produk like('%$x[$i]%')";
if($i!=count($x)-1){
$cari_produk.=' or ';
$cari_kategori.=' or ';
}
}
$cari_produk.=') ';
$cari_kategori.=') ';
}else{
$cari_produk='';
$cari_kategori='';
}
echo "<h3>Pencarian Dalam Kategori</h3>";
$q_kategori = $mysqli->query("select a.*,b.nm_ktg from produk a
left join kategori b on a.id_ktg=b.id
where $cari_kategori group by b.nm_ktg order by a.nm_produk asc");
echo "<ul>";
while($v_kategori = $q_kategori->fetch_assoc()){
echo "<li>".strtoupper($v_kategori['nm_ktg'])."</li>";
}
echo "</ul>";
$q_produk = $mysqli->query("select a.* from produk a
left join kategori b on a.id_ktg=b.id
where $cari_produk order by a.nm_produk asc");
echo "<ul>";
while($v_produk = $q_produk->fetch_assoc()){
echo "<li>".$v_produk['kode_produk']." - ".strtoupper($v_produk['nm_produk'])."</li>";
}
echo "</ul>";
?>
3. Hasil Pencarian
Berikut dibawah ini hasil pencarian berdasarkan kata kunci Gar, dapar di lihat pada script seperti ini $cari_text ="Gar";
Hasil diatas menunjuakan ada dua model, yang pertama pencarian di kategori, bagian kedua pencarian produk. Demikian tutorial ini kami bagikan, terima kasih telah berkunjung di website kami, Selamat Mencoba
Ada 0 Komentar di "Cara Membuat Pencarian Multiple di PHP pada Database Mysql"
Tinggalkan Komentar Disini