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:

Fieldname Tipe Data Keterangan
id int(11) primary key
nama varchar(50)
ayah varchar(50)
ibu varchar(50)
alamat text

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.

Untuk pertanyaan silahkan ke Sangkep atau dengan form komentar di bawah.