Membuat Searching (Skrip Pencarian Data)


Searching atau pencarian data merupakan hal penting dalam sebuah aplikasi, apalagi aplikasi yang menangani data yang banyak. Ada dua tipe searching yaitu: Quick Search dan Advanced Search. Quick search adalah pencarian sederhana seperti google search, pengguna hanya memasukkan sebuah kata kunci dari apa yang dicarinya. Sedangkan Advanced search adalah pencarian lanjut yang lebih kompleks dengan beberapa kriteria pencarian, yang memungkinkan hasil pencarian yang lebih akurat.
Sebelum membuat script seaching ada baiknya untuk mempelajari dasar untuk menampilkan data. Pada tutorial ini akan digunakan sebuah tabel siswa seperti berikut:
FieldnameTipe DataKeterangan
idint(11)primary key
namavarchar(50)
ayahvarchar(50)
ibuvarchar(50)
alamattext
Searching biasanya menggunakan query "like", seperti:
select * from nama_table where nama_field like '%cari%'
hasilnya adalah semua data yang berisikan kata cari seperti "mencari", "pencarian".

Membuat Quick Search

Untuk membuat Quick Search gunakan skrip php di bawah:
<!-- form quick search -->
<form name="form1" method="get" action="">
Search : <input type="text" name="q" id="q"/> <input type="submit" value="Search"/>
</form>
<!-- menampilkan hasil pencarian -->
<?php
if(isset($_GET['q']) && $_GET['q']){
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("test");
$q = $_GET['q'];
$sql = "select * from siswa where nama like '%$q%' or
ayah like '%$q%' or ibu like '%$q%' or alamat like '%$q%'";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0){
?>
<table>
<tr>
<td>Nama</td>
<td>Ayah</td>
<td>Ibu</td>
<td>Alamat</td>
</tr>
<?php
while($siswa = mysql_fetch_array($result)){?>
<tr>
<td><?php echo $siswa['nama'];?></td>
<td><?php echo $siswa['ayah'];?></td>
<td><?php echo $siswa['ibu'];?></td>
<td><?php echo $siswa['alamat'];?></td>
</tr>
<?php }?>
</table>
<?php
}else{
echo 'Data not found!';
}
}
?>

Membuat Advanced Search

Gunakan skrip di bawah untuk membuat advanced search.
<!-- form advanced search -->
<form name="form1" method="get" action="">
Nama : <input type="text" name="nama" id="nama"/> <br/>
Ayah : <input type="text" name="ayah" id="ayah"/> <br/>
Ibu : <input type="text" name="ibu" id="ibu"/> <br/>
Alamat : <input type="text" name="alamat" id="alamat"/>
<br/><input type="submit" value="Search" name="search"/>
</form>
<!-- menampilkan hasil pencarian -->
<?php
if(isset($_GET['search'])){
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("test");
$nama = $_GET['nama'];
$ayah = $_GET['ayah'];
$ibu = $_GET['ibu'];
$alamat = $_GET['alamat'];
$sql = "select * from siswa where nama like '%$nama%' and
ayah like '%$ayah%' and ibu like '%$ibu%' and alamat like '%$alamat%'";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0){
?>
<table>
<tr>
<td>Nama</td>
<td>Ayah</td>
<td>Ibu</td>
<td>Alamat</td>
</tr>
<?php
while($siswa = mysql_fetch_array($result)){?>
<tr>
<td><?php echo $siswa['nama'];?></td>
<td><?php echo $siswa['ayah'];?></td>
<td><?php echo $siswa['ibu'];?></td>
<td><?php echo $siswa['alamat'];?></td>
</tr>
<?php }?>
</table>
<?php
}else{
echo 'Data not found!';
}
}
?>
Perbedaan advanced search dengan quick search adalah: Quick search menggunakan operator "or" pada sql query, sedangkan Advanced search menggunakan operator "and" dengan beberapa kriteria pencarian, seperti nama, ayah, ibu, alamat.

Rangkuman

Ada dua tipe searching/pencarian data: Quick search dan Advanced Search. Quick search adalah pencarian sederhana hanya menggunakan satu kriteria pencaria. Advanced Search, pencarian lanjut yang lebih kompleks dengan beberapa kriteria pencarian. Advanced search memberikan hasil yang lebih akurat dibanding quick search.

Komentar

Postingan populer dari blog ini

Login, Session, dan Logout

Cara Membuat File Setup / Installer Aplikasi Sendiri dengan Inno Setup Compiler