Pemberitahuan :

Maaf Atas Ketidak Nyamanan, Blog Ini Sedang Dalam PERBAIKAN !!

English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese Simplified
Translate This Blog by JAS_Blog

Jan 30, 2012

Cara buat pencarian dengan kategori dalam PHP

Reactions: 
Proses searching 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 :
</pre>
<h1>SEARCH</h1>
<table>
<tbody>
<tr>
<td>Search</td>
<td><select name="table"> <option value="-">--- table ---</option></select>
<select name="table"></select>
<select name="table"></select>
<select name="table"><option value="' . $tab.'">' . $tab . '</option></select>
<select name="table"></select>
<select name="table"></select></td>
<td><input type="text" name="keyword" size="20" maxlength="255" /></td>
<td><input type="submit" value="go" /></td>
</tr>
</tbody>
</table>
<pre>
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 $tables dengan 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
$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 '</pre>
<h1>RESULT</h1>
<pre>
';

if( empty( $table ) || empty( $keyword ) || $table == '-' )
{
die('Tidak boleh ada kolom yang kosong
 <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 '</pre>
<div style="width: 100%; background-color: #cccccc;"> Searching <strong>';
echo $keyword . '</strong> from table <em>' . $table . '</em></div>
<pre>
';

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 '

';
echo '</pre>
<table>';for( $a = 0; $a < $columns; $a++ ) {echo '
<tbody>
<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 '</tbody>
</table>
<pre>
';
echo '

';
}
}
?>
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 <prev 1 | 2 |3 next> last>>, jadi kalau komentarnya ada 100 tampilkan 10 komentar perhalamannya
  • Get improvise, anda punya potensi besar dalam mencetuskan ide sendiri ;-)

1 comment:

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

    ReplyDelete

Silahkan Berkomentar Tentang Blog Ini (NO SPAM PLEASE) Agar Blog Ini Bisa Lebih Baik Lagi Dari Yang Sekarang.... TERIMA KASIH & SEMOGA BERMANFAAT :)

EasyHits4U.com - Your Free Traffic Exchange - 1:1 Exchange Ratio, 5-Tier Referral Program. FREE Advertising!

Copyright @ 2013 JAS Blog. Designed by Templateism | Love for The Globe Press