Membuat Searching (Skrip Pencarian Data) PHP

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
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:
  1. <!-- form quick search -->  
  2. <form name="form1" method="get" action="">  
  3. Search : <input type="text" name="q" id="q"/> <input type="submit" value="Search"/>  
  4. </form>  
  5. <!-- menampilkan hasil pencarian -->  
  6. <?php  
  7. if(isset($_GET['q']) && $_GET['q']){  
  8.     $conn = mysql_connect("localhost""root""");  
  9.     mysql_select_db("test");  
  10.     $q = $_GET['q'];  
  11.     $sql = "select * from siswa where nama like '%$q%' or   
  12.     ayah like '%$q%' or ibu like '%$q%' or alamat like '%$q%'";  
  13.     $result = mysql_query($sql);  
  14.     if(mysql_num_rows($result) > 0){  
  15.         ?>  
  16.         <table>  
  17.             <tr>  
  18.                 <td>Nama</td>  
  19.                 <td>Ayah</td>  
  20.                 <td>Ibu</td>  
  21.                 <td>Alamat</td>  
  22.             </tr>  
  23.             <?php  
  24.             while($siswa = mysql_fetch_array($result)){?>  
  25.             <tr>  
  26.                 <td><?php echo $siswa['nama'];?></td>  
  27.                 <td><?php echo $siswa['ayah'];?></td>  
  28.                 <td><?php echo $siswa['ibu'];?></td>  
  29.                 <td><?php echo $siswa['alamat'];?></td>  
  30.             </tr>  
  31.             <?php }?>  
  32.         </table>  
  33.         <?php  
  34.     }else{  
  35.         echo 'Data not found!';  
  36.     }  
  37. }  
  38. ?> 

Membuat Advanced Search


Gunakan skrip di bawah untuk membuat advanced search.
  1. <!-- form advanced search -->  
  2. <form name="form1" method="get" action="">  
  3. Nama : <input type="text" name="nama" id="nama"/> <br/>  
  4. Ayah : <input type="text" name="ayah" id="ayah"/> <br/>  
  5. Ibu : <input type="text" name="ibu" id="ibu"/> <br/>  
  6. Alamat : <input type="text" name="alamat" id="alamat"/>   
  7. <br/><input type="submit" value="Search" name="search"/>  
  8. </form>  
  9. <!-- menampilkan hasil pencarian -->  
  10. <?php  
  11. if(isset($_GET['search'])){  
  12.     $conn = mysql_connect("localhost""root""");  
  13.     mysql_select_db("test");  
  14.     $nama = $_GET['nama'];  
  15.     $ayah = $_GET['ayah'];  
  16.     $ibu = $_GET['ibu'];  
  17.     $alamat = $_GET['alamat'];  
  18.     $sql = "select * from siswa where nama like '%$nama%' and   
  19.     ayah like '%$ayah%' and ibu like '%$ibu%' and alamat like '%$alamat%'";  
  20.     $result = mysql_query($sql);  
  21.     if(mysql_num_rows($result) > 0){  
  22.         ?>  
  23.         <table>  
  24.             <tr>  
  25.                 <td>Nama</td>  
  26.                 <td>Ayah</td>  
  27.                 <td>Ibu</td>  
  28.                 <td>Alamat</td>  
  29.             </tr>  
  30.             <?php  
  31.             while($siswa = mysql_fetch_array($result)){?>  
  32.             <tr>  
  33.                 <td><?php echo $siswa['nama'];?></td>  
  34.                 <td><?php echo $siswa['ayah'];?></td>  
  35.                 <td><?php echo $siswa['ibu'];?></td>  
  36.                 <td><?php echo $siswa['alamat'];?></td>  
  37.             </tr>  
  38.             <?php }?>  
  39.         </table>  
  40.         <?php  
  41.     }else{  
  42.         echo 'Data not found!';   
  43.     }  
  44. }  
  45. ?> 

 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.

Sumber :http://www.myphptutorials.com/