28 Komentar

Belajar PHP bagian 5 – Searching (FINAL)

Posting kali ini merupakan tutorial terakhir dari Belajar PHP – membuat buku tamu sederhana.
PERHATIAN!! Tutorial ini bersambung, jadi sebelum melanjutkan pastikan anda sudah melewati (jalankan) tutorial:

  1. Belajar PHP bagian 1
  2. Belajar PHP bagian 2
  3. Belajar PHP bagian 3
  4. Belajar PHP bagian 4.

Proses searching kali ini akan menggunakan dua file PHP :

  1. searching.php berisi form untuk melakukan pencarian berdasarkan tabel yang ada di database bukutamu
  2. searching_proses.php merupakan halaman selanjutnya ketika tombol go ditekan
searching.php

Tampilan searching.php

Kode lengkap searching.php :

<?php
$server = 'localhost';
$user_db = 'root';
$password_db = '';
$nama_db = 'bukutamu';

mysql_connect($server,$user_db,$password_db) or die(mysql_error());
mysql_select_db($nama_db) or die(mysql_error());

$tables = mysql_list_tables($nama_db);
?>
<h1>SEARCH</h1>
<table>
<form action="searching_proses.php">
<tr>
 <td>Search</td>
 <td>
  <select name="table">
   <option value="-">--- table ---</option>
   <?
   while(list($tab) = mysql_fetch_array($tables))
   {
   		echo '<option value="'.$tab.'">'.$tab.'</option>';
   }
   ?>
  </select>
 </td>
 <td><input type="text" name="keyword" size="20" maxlength="255"></td>
 <td><input type="submit" value="go"></td>
</tr>
</form>
</table>

Halaman ini berfungsi menampilkan tabel-tabel yang ada di database bukutamu dalam bentuk form select, disini kita akan memberikan kebebasan dalam melakukan pencarian terhadap tabel tertentu.

$tables = mysql_list_tables( $nama_db );

Pengambilan data tabel dari database dilakukan dengan menggunakan fungsi mysql_list_tables( $nama_db ) yang nilai baliknya akan disimpan dalam $tablesdengan tipe variabel array.

while( list( $tab ) = mysql_fetch_array( $tables ) )
{
echo '' . $tab . '';
}

Dan nantinya variabel $tables akan ditelusuri jumlah nilai yang terkandung didalamnya menggunakan blok pengulangan while().

searching_proses.php

Tampilan searching_proses.php

Kode lengkap searching_proses.php

<?php
$server = 'localhost';
$user_db = 'root';
$password_db = '';
$nama_db = 'bukutamu';

$link = mysql_connect( $server, $user_db, $password_db ) or die( mysql_error() );
mysql_select_db( $nama_db ) or die( mysql_error() );

$table = $_REQUEST['table'];
$keyword = $_REQUEST['keyword'];

echo '<h1>RESULT</h1>';

if( empty( $table ) || empty( $keyword ) || $table == '-' )
{
	die('Tidak boleh ada kolom yang kosong<br> <a href="searching.php">Kembali</a>');

}

$fields = mysql_list_fields( $nama_db, $table, $link );
$columns = mysql_num_fields( $fields );

echo '<a href="searching.php">Kembali</a>';
echo '<div style="width:100%; background-color:#CCCCCC;">&nbsp;Searching <strong>';
echo $keyword . '</strong> from table <em>' . $table . '</em></div>';

for ( $i = 0; $i < $columns; $i++ ) {
	$sql = 'select * from ' . $table.' where '.mysql_field_name( $fields, $i ) . ' like "%' . $keyword . '%"';
	$query = mysql_query( $sql );
	$row = mysql_fetch_row( $query );

	if( !empty( $row ) ) {
		echo '<p>';
		echo '<table>';
		for( $a = 0; $a < $columns; $a++ ) {
			echo '<tr>';
			echo '<td>' . mysql_field_name( $fields, $a ) . '</td>';
			echo '<td>' . preg_replace( "/$keyword/i", '<span style="background-color:yellow;">' . $keyword . '</span>', $row[$a] ) . '</td>';
			echo '</tr>';
		}
		echo '</table>';
		echo '</p>';
	}
}
?>

Meskipun hanya satu file namun saya yakin bagi yang baru belajar PHP logika kode diatas cukup untuk membuat pusing untuk beberapa hari he.he. Tapi setelah menguasainya logika pemrograman pasti lebih tajam. searching_proses.php berisi blok syntax highlighter alias penyorot teks sehingga hasil pencarian yang sama dengan kata kunci akan disorot seolah-olah telah di-stabilo.

Akhirnya tutorial pengantar dalam belajar PHP membuat buku tamu sederhana telah selesai. Semoga membantu dalam mengawali pembelajaran bahasa pemrograman PHP

Langkah selanjutnya adalah perbaiki dan tambah fitur dalam buku tamu ini untuk meningkatkan kemampuan PHP anda, contoh sederhana :

  • Satukan semua kode dalam sebuah website dengan navigasi yang konsisten dengan susunan menu seperti Home | Bukutamu | about
  • Tambah informasi lain pada user, seperti nama, tgl lahir, tgl daftar, dll
  • Gunakan include() atau require() sehingga blok koneksi ke database tidak perlu berkali-kali ditulis.
  • Supaya lebih interaktif kambah kolom balasan sehingga memungkinkan anda atau pengguna melakukan komentar balasan terhadap sebuah komentar.
  • Tambahkan pagination atau pengaturan halaman <<first last>>, jadi kalau komentarnya ada 100 tampilkan 10 komentar perhalamannya
  • Get improvise, anda punya potensi besar dalam mencetuskan ide sendiri😉

* download dan satukan dalam satu folder dengan tutorial bagian 1, 2, 3 dan 4

Bacaan lebih lanjut

Twitt-nya :

28 comments on “Belajar PHP bagian 5 – Searching (FINAL)

  1. yeee..aq pertamax…
    Ajarin lagi dunk gan…
    Postingan tentang PHP…
    bwt tugas kuliah ne…hehehe..

    http://bagusdream.wordpress.com/

  2. kAK KLO MAU TAMPILKAN DATA TERSEBUT KE HTML GIMANA CARANYA KAK?

    • Kalau hanya mengandalkan HTML saja tidak mungkin untuk mengambil (SELECT / READ) data dari database. Tetap harus mengandalkan bahasa pemrograman web seperti PHP.
      Atau dengan format JSON (JavaScript Object Notation) untuk memformat data dari PHP supaya bisa dibaca oleh Javascript, namun tetap proses awal pembuatan halaman dengan format JSON tersebut memerlukan PHP, namun nantinya halaman HTML + Javascript dapat membacanya.
      Bacaan lebih lanjut tentang JSON http://www.json.org/😉

  3. embh,q kan lagi belajar buat website nie,
    dlemnya ada artikel,
    nah,sama guruku disuruh buat search gitu,
    misal dikasih kata kunci,nah nanti yang keluar harus ada di artikel itu,n’ tepatnya di websiteQ.
    embh,gimana ya sintagnya???
    trimakasih,…

    • searching_proses.php berisi blok syntax highlighter alias penyorot teks sehingga hasil pencarian yang sama dengan kata kunci akan disorot seolah-olah telah di-stabilo.

      Konsepnya sama seperti itu.
      Kamu bisa pake pola $sql = 'select * from ' . $table.' where '.mysql_field_name( $fields, $i ) . ' like "%' . $keyword . '%"'; buat nyari data di-database-nya. dan preg_replace( "/$keyword/i", '' . $keyword . '', $row[$a] ) buat highlight keyword didalamnya

      Jangan lelah untuk mencoba😉

  4. edan,.
    jelas,.lengkap.,
    bisa di ikuta oleh orang yg belum ngerti..
    dasyat…

    kalau mau tanya2 bisa gk om lwt email?
    thanks..

  5. mas bro,, tutorialnya mantapp bermanfaat banget tapi sory nihh file searching.php dan file searching_proses.php gak bisa di download link error .. upload ulang mas atau kirim via email saya thanks before

    • Sori baru sempet bales. Link download diatas baru saja saya coba dan berjalan dengan baik😉 coba ganti browser atau cek versi flash player atau jangan gunakan download accelerator semacam IDM, filenya kecil 1.2kb

  6. Bang,script yg seaching.php tampilan’nya ga sama kayak yg diatas…trus action’nya lom ada waktu ditekan “go” ga terjadi apa2…thx

    • Thanks buat reminder-nya Bayu. Iya ternyata action-nya ilang. Mungkin ini karena proses internal wordpress.com atau karena perubahan tema beberapa waktu lalu. karena kode yang saya tulis seharusnya sudah termasuk tag form beserta attribut action. Tapi ga papa, sudah saya perbarui dan silahkan dicoba. Oh ya ada source code-nya yang bisa kamu download juga di bagian bawah artikel🙂

  7. Bang untuk yg script searching.php itu tampilan’nya ga sama kayak diatas trus ga ada action’nya waktu kita tekan “go”…btw artikel’nya bagus,ditunggu untuk artikel yg lain…😀

  8. Mau tanya lagi ya bang :D…itu searching’nya cuma nampilin 1 kata hallo aja klu ada 2 kata hallo ga bisa terlihat di hasil…script’nya gmn klu mw terlihat smw kata yg ada?? trus klu mau searching yang ada pilihan mau database mana gmn ya script’nya?? makasih bang…tambah ilmu’nya trus…

    • Tutorial searching itu kategorinya dasar. Kalau mau lebih canggih dengan kemungkinan 2 kata atau lebih maka kamu harus kombinasikan dengan operator LOGIKA seperti AND dan OR

  9. pas di eksekusi muncul seperti ini :
    Deprecated: Function mysql_list_tables() is deprecated in C:\xampp\htdocs\kodingseraching\searching.php on line 10

    dan satu lagi ni mas kalu yang ditampilkan dalam select nya ada lah dalam bentuk field bukan dalam bntuk table kira-kira gimana ya scripnya mas… matur nuon atas pencerahannya..

  10. makasih banyak yah gan ane akhirnya bisa juga nyambung ke database nya

  11. kalo pengen nampilin hasil pencarian tapi beda field tiap tabelnya itu gimana?
    bisakah?

  12. kk saa mw tanya , sepertinya ada yg salah di searching, saya coba g masuk ke database ‘bukutamu’ .
    apa karna database “bukutamu” dan table “bukutamu” sama namanya??

  13. bingung aku,, ada cara yang lebih simple pa gak?? seperti penggunaan where dlll

  14. Tulisan ini sangat bermanfaat terutama bagi yang baru belajar pemograman dengan PHP. Salam. Yusuf GK

  15. gan, make logika OR dan AND nya gimana yah?

Menurut anda bacaan ini bermanfaat? Ada tambahan? Atau mungkin mencari jawaban lain? Tulis disini Ok (:

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: