Sunday, March 11, 2012

Membuat Searching (Skrip Pencarian Data) pada 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:
  1. 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.

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.

2 komentar:

Cang Karna said...

bermanfaat juragan...
makasi infonya... sering-sering share ya tutorialnya

Abdul Aziz said...

makasih gan atas infonya....

Post a Comment

 
Pratama Master powered by blogger.com
Design by Simple Diamond and Pratama Master