Kamis, 03.11.2010, 09:16am (GMT)
  Depan
  Profil
  RSS
  Links
  PetaSitus
  Kontak
  CHATTING
 
Kompetisi Website Kompas MuDA – KFC ; Jasa Pembuatan Website | Company Profile | Web Application | Corporate Identity | CD interactive ; Puasa Adalah Benteng Penghalang ; Antisipasi Praktis Terhadap Flu Babi (H1N1) ; Jurus-jurus praktis memulai bisnis
::| Kata_kunci:       [Cari_Lengkap]
 
Semua Artikel  
  Pemrograman
 » PHP
 » Java
 » Ajax
 » ASP
  Desain Grafik
  Desain Web
  Hacking
  SEO
  Hosting
  Komputer
  Aplikasi
  Musik
  Film
  Ponsel & PDA
  Tips & Triks
  Internet
  Blog
  Cinta
  Agama Islam
  Kesehatan
  Bisnis
  Motivasi
  Aneh dan Unik
  Linux
  Materi Kuliah
  Umum
  Tahukah anda?
  Humor
  Skripsi/PI/TA
  Informasi
  I Love Indonesia
  ::| Artikel langganan
Nama Lengkap:
Email:
 
 
 
Pemrograman » PHP
 
Script PHP Menampilkan Hasil Pencarian Multikategori
Sabtu, 07.18.2009, 01:35am (GMT)

pada artikel kali ini, saya akan memaparkan bagaimana teknik untuk menggabungkan kedua hal tersebut atau tepatnya bagaimana teknik membuat script advanced paging untuk menampilkan hasil pencarian multikategori. Artikel ini mudah-mudahan bisa dimanfaatkan oleh para mahasiswa saya yang sedang mendapat tugas dari dosennya :-)

Untuk lebih mempermudah penjelasan, langsung saja kita terapkan ke studi kasus. Lagi-lagi studi kasusnya terkait dengan data mahasiswa.

Karena teknik ini merupakan gabungan dari teknik pencarian multikategori dan advanced paging, maka script ini nantinya juga merupakan kombinasi dari keduanya. Oleh karena itu bila Anda belum menguasai kedua teknik tersebut, saya sarankan baca dan pelajarilah terlebih dahulu.

Pokok persoalan utama dari permasalahan untuk menampilkan hasil pencarian dengan advanced paging adalah bagaimana supaya data yang ditampilkan dalam paging ini sesuai dengan kategori pencarian yang dipilih. Apabila yang ditampilkan dalam paging adalah seluruh data yang ada dalam tabel database, tentu hal ini tidak menjadi masalah. Dengan membaca artikel tentang advanced paging sebelumnya, masalah ini akan selesai.

Sebagai awal pembahasan, kita coba kembali melihat struktur tabel mahasiswanya.

CREATE TABLE mhs (
nim varchar(10),
namamhs varchar(30),
alamat text,
sex varchar(10),
PRIMARY KEY (nim)
)

Sedangkan form pencarian multikategorinya adalah sebagai berikut

cari.html

Cari Data Mahasiswa

 

Pilih kategori pencarian

 
NIM
Nama Mahasiswa
Alamat
Jenis Kelamin Laki-Laki Perempuan

Bila dilihat di browser, maka form pencarian di atas akan memiliki tampilan seperti di bawah ini:

Selanjutnya kita akan coba bahas mengenai script menampilkan data hasil pencarian menggunakan teknik paging.

Tentu kita tahu bahwa pencarian dengan kategori akan membatasi data yang muncul sebagai hasil pencarian. Kategori pencarian ini nanti akan dikaitkan dengan adanya batasan syarat dalam query SQL, dalam hal ini adalah adanya klausa WHERE (syarat) dalam statement SELECT nya. Anda dapat membaca kembali bagaimana mengimplementasikan konsep penggunaan query SQL untuk pencarian multi kategori ini dalam artikel sebelumnya. Bila hal tersebut diterapkan dalam paging, maka syarat atau kategori pencarian yang dipilih harus dikenali dalam setiap halaman pagingnya. Tidak hanya syarat atau kategori pencarian yang harus dikenali di setiap halaman paging, namun juga kata kunci yang digunakan dalam pencarian. Mengapa diperlukan? ya… karena keduanya akan digunakan dalam query SQL untuk menampilkan data.

Trus… bagaimana caranya supaya kategori dan kata kunci pencarian yang dipilih tersebut dikenali di setiap halaman paging? caranya adalah dengan menggunakan teknik request GET, yaitu menambahkan parameter pada URL link di setiap halaman paging. Dalam setiap halaman paging, kedua hal tersebut harus selalu ada dalam link pagingnya.

Berikut ini adalah contoh URL link yang akan digunakan untuk menampilkan data dengan kategori yang dipilih berdasarkan NAMA MAHASISWA dan ALAMAT. Kata kunci yang digunakan untuk NAMA MAHASISWA adalah ‘xxx’ dan kata kunci ALAMAT adalah ‘yyy’.

http://.../show.php?page=1&namamhs=xxx&alamat=yyy

Dalam URL berparameter tersebut, untuk mengetahui kategori yang digunakan cukup menggunakan perintah isset($_GET['...']), misal isset($_GET['namamhs']) untuk mengecek apakah NAMA MAHASISWA digunakan sebagai kategori pencarian. Jika kategori tersebut digunakan, maka nilai isset($_GET['namamhs']) akan bernilai TRUE.

Secara lengkap, script untuk menampilkan hasil pencarian multi kategori dengan teknik advanced paging adalah seperti di bawah ini:

show.php

<?php
mysql_connect('dbhost', 'dbuser', 'dbpass');
mysql_select_db('dbname');
 
// $bagianWhere digunakan membentuk syarat WHERE di query SQL
// sesuai kategori pencarian yang dipilih
 
$bagianWhere = "";
 
// $bagianParam digunakan untuk membentuk parameter link di setiap halaman paging
// berisi kategori yang dipilih dan keywordnya
 
$bagianParam = "";
 
// jika NIM termasuk kategori pencarian
 
if (isset($_POST['nimCat']) || isset($_GET['nim']))
{
if (isset($_POST['nimCat'])) $nim = $_POST['nim'];
if (isset($_GET['nim'])) $nim = $_GET['nim'];
 
if (empty($bagianWhere) && empty($bagianParam))
{
$bagianWhere .= "nim = '$nim'";
$bagianParam .= "nim=".$nim;
}
}
 
// jika NAMA MAHASISWA termasuk kategori pencarian
 
if (isset($_POST['namaCat']) || isset($_GET['namamhs']))
{
if (isset($_POST['namaCat'])) $namamhs = $_POST['namamhs'];
if (isset($_GET['namamhs'])) $namamhs = $_GET['namamhs'];
 
if (empty($bagianWhere) && empty($bagianParam))
{
$bagianWhere .= "namamhs LIKE '%$namamhs%'";
$bagianParam .= "namamhs=".$namamhs;
}
else
{
$bagianWhere .= " AND namamhs LIKE '%$namamhs%'";
$bagianParam .= "&namamhs=".$namamhs;
}
}
 
// jika ALAMAT termasuk kategori pencarian
 
if (isset($_POST['alamatCat']) || isset($_GET['alamat']))
{
if (isset($_POST['alamatCat'])) $alamat = $_POST['alamat'];
if (isset($_GET['alamat'])) $alamat = $_GET['alamat'];
 
if (empty($bagianWhere) && empty($bagianParam))
{
$bagianWhere .= "alamat LIKE '%$alamat%'";
$bagianParam .= "alamat=".$alamat;
}
else
{
$bagianWhere .= " AND alamat LIKE '%$alamat%'";
$bagianParam .= "&alamat=".$alamat;
}
}
 
// jika JENIS KELAMIN termasuk kategori pencarian
 
if (isset($_POST['sexCat']) || isset($_GET['sex']))
{
if (isset($_POST['sexCat'])) $sex = $_POST['sex'];
if (isset($_GET['sex'])) $sex = $_GET['sex'];
 
if (empty($bagianWhere) && empty($bagianParam))
{
$bagianWhere .= "sex = '$sex'";
$bagianParam .= "sex=".$sex;
}
else
{
$bagianWhere .= " AND sex = '$sex'";
$bagianParam .= "&sex=".$sex;
}
}
 
 
// jumlah data yang akan ditampilkan per halaman
 
$dataPerPage = 5;
 
// apabila $_GET['page'] sudah didefinisikan, gunakan nomor halaman tersebut,
// sedangkan apabila belum, nomor halamannya 1.
 
if(isset($_GET['page']))
{
$noPage = $_GET['page'];
}
else $noPage = 1;
 
// perhitungan offset
 
$offset = ($noPage - 1) * $dataPerPage;
 
// query SQL untuk menampilkan data perhalaman sesuai offset
 
$query = "SELECT * FROM mhs WHERE ".$bagianWhere." LIMIT $offset, $dataPerPage";
 
$hasil = mysql_query($query);
 
// menampilkan data
 
echo "<table border='1'>";
echo "<tr><td>NIM</td><td>Nama Mahasiswa</td><td>Alamat</td><td>Jenis Kelamin</td></tr>";
while ($data = mysql_fetch_array($hasil))
{
echo "<tr><td>".$data['nim']."</td><td>".$data['namamhs']."</td><td>".$data['alamat']."</td><td>".$data['sex']."</td></tr>";
}
echo "</table>";
 
// mencari jumlah semua data dalam tabel guestbook
 
$query = "SELECT COUNT(*) AS jumData FROM mhs WHERE ".$bagianWhere;
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
 
$jumData = $data['jumData'];
 
// menentukan jumlah halaman yang muncul berdasarkan jumlah semua data
 
$jumPage = ceil($jumData/$dataPerPage);
 
// menampilkan link previous
 
if ($noPage > 1) echo "<a href='".$_SERVER['PHP_SELF']."?page=".($noPage-1)."&".$bagianParam."'>&lt;&lt; Prev</a>";
 
// memunculkan nomor halaman dan linknya
 
for($page = 1; $page <= $jumPage; $page++)
{
if ((($page >= $noPage - 3) && ($page <= $noPage + 3)) || ($page == 1) || ($page == $jumPage))
{
if (($showPage == 1) && ($page != 2)) echo "...";
if (($showPage != ($jumPage - 1)) && ($page == $jumPage)) echo "...";
if ($page == $noPage) echo " <b>".$page."</b> ";
else echo " <a href='".$_SERVER['PHP_SELF']."?page=".$page."&".$bagianParam."'>".$page."</a> ";
$showPage = $page;
}
}
 
// menampilkan link next
 
if ($noPage < $jumPage) echo "<a href='".$_SERVER['PHP_SELF']."?page=".($noPage+1)."&".$bagianParam."'>Next &gt;&gt;</a>";
 
?>

Berikut ini tampilan yang menggambarkan pencarian data mahasiswa berdasarkan ALAMAT dan JENIS KELAMIN

dan tampilan hasil pencariannya adalah

Anda dapat pula mendownload script semuanya di bawah ini

[ Download Script ]

Thanks to : blog.rosihanari.net

dewa

Komentar (0)        Cetak        Beri tau temen        Atas


Artikel yang berhubungan:
» Tentang Bahasa Pemrograman Prolog
» Menyimpan Tulisan Arab Ke MySQL
» Tentang DOM di Javascript
» Script Multiple File Upload Dengan PHP
» Ide Pembuatan Script PHP Upload Download File Via Folder
» Multi Language dengan PHP
» Tutorial membuat program java (J2ME) di HP
» Tentang Bahasa Pemrograman Web
» jQuery Ajax Display for Loading Content
» Trick Upload PHP Auto Rename
» Sejarah Pemrograman bahasa java
» Cara Membuat Rss
» Sekilas Tentang Cake PHP
» Lebih dalam dengan operasi string bag.1
» Pengenalan dan Sejarah PHP


Artikel lain:
Menyimpan Tulisan Arab Ke MySQL (07.18.2009)
Script Multiple File Upload Dengan PHP (07.18.2009)
Ide Pembuatan Script PHP Upload Download File Via Folder (07.17.2009)
Multi Language dengan PHP (07.12.2009)
Trick Upload PHP Auto Rename (05.21.2009)
Cara Membuat Rss (04.14.2009)
Sekilas Tentang Cake PHP (03.11.2009)
Lebih dalam dengan operasi string bag.1 (02.16.2009)
Pengenalan dan Sejarah PHP (02.13.2009)



 
  ::| Events
March 2010  
Mg Sn Sl Rb Km Jm Sb
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
 

 
Bookmark and Share Page Ranking Tool