Dapatkan 'Easy Gammu Installer' - Cara Mudah Install Gammu + Ebook Gammu
Ingin Punya Script SMS Gateway dengan PHP + MySQL?

Dapatkan segera phpSMS V3.0, software SMS Gateway multi fungsi berbasis web buatan saya sendiri untuk keperluan Anda.
[Info Lengkap...]

Ide Membuat Script PHP untuk Pencarian dengan Multi Kategori


April 4th, 2009 | by rosihanari | Cetak Artikel Ini Cetak Artikel Ini

Dalam suatu aplikasi yang terkait dengan database, seringkali muncul fasilitas untuk pencarian data. Untuk mempersempit scope pencarian biasanya pencarian dilakukan berdasarkan kategori tertentu. Kategori pencarian bisa bersifat single category artinya hanya berdasar satu kategori pencarian saja atau ada yang bersifat multiple category atau multi kategori dimana user bisa melakukan pencarian berdasarkan lebih dari satu kategori.

Untuk membuat fasilitas pencarian berdasarkan satu kategori pada prinsipnya mudah. Sebagai contoh misalkan pencarian data mahasiswa, dimana user bisa melakukan pencarian berdasarkan salah satu dari kategori NIM, nama mahasiswa, alamat, jenis kelamin atau yang lain. Dalam hal ini (single category), prinsipnya hanyalah menggunakan statement kondisional saja. Jika yang dipilih adalah kategori NIM, maka jalankan query pencarian data berdasarkan kategori NIM. Jika yang dipilih adalah kategori nama mahasiswa, maka jalankan query pencarian data berdasarkan nama mahasiswa dan seterusnya. Saya kira mudah… dan tidak ada masalah.

Namun… bagaimana bila pencariannya berdasarkan multi kategori? misalkan user ingin mencari tahu siapa saja sih mahasiswa yang beralamat di Solo dan berjenis kelamin laki-laki misalnya :-) Kalau kita terapkan logika seperti halnya pada single kategori, maka akan sulit diimplementasikan. Mengapa sulit? ya.. karena akan banyak kemungkinan yang terjadi dalam pemilihan kategorinya. Coba bayangkan, seandainya untuk data mahasiswa terdapat 10 buah field. Untuk single kategori, tidak ada masalah karena kemungkinkan pemilihan kategorinya ada 10 buah (Anda membuat statement kondisional sebanyak 10 buah). Namun.. jika menggunakan multi kategori, wah… bisa-bisa Anda pusing karena terlalu banyak kemungkinannya si user tadi memilih kategorinya. Hitung-hitung ada sekitar jutaan kemungkinan. wow… capee dehh… :-)

Sebagai gambaran saja, seperti apa pencarian multi kategori itu, bisa Anda lihat pada gambar di bawah ini.

Photobucket

Gambar di atas menggambarkan pencarian data mahasiswa, dimana user bisa memilih kategori pencarian lebih dari satu. Dalam contoh di atas terdapat 4 kategori, dimana user dapat mengkombinasikannya sesuai keinginan. Perhatikan, bahwa gambar di atas menunjukkan si user ingin mencari mahasiswa bernama ‘Joko’ yang beralamat di ‘Solo’. Kalau dihitung-hitung ada sebanyak 24 buah total pilihan yang mungkin dipilih user. Kalau Anda buat ke 24 kemungkinan tersebut dengan statement kondisional wah… repot :-)

Nah… pada artikel ini akan dibahas bagaimana trik untuk membuat script guna keperluan pencarian multi kategori tersebut. Untuk mudahnya kita akan menerapkannya ke studi kasus saja. Studi kasus yang dipilih sama seperti contoh pada gambar di atas saja yah.. supaya mudah.

OK.. pertama.. kita siapkan databasenya terlebih dahulu, beserta tabelnya. Kalau perlu recordnya sekalian untuk contoh saja.

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

INSERT INTO `mhs` VALUES ('M0197001', 'ROSIHAN ARI YUANA', 'COLOMADU', 'L');
INSERT INTO `mhs` VALUES ('M0197002', 'DWI AMALIA FITRIANI', 'KUDUS', 'P');
INSERT INTO `mhs` VALUES ('M0197003', 'FAZA FAUZAN KH.', 'COLOMADU', 'L');
INSERT INTO `mhs` VALUES ('M0197004', 'NADA HASANAH', 'COLOMADU', 'P');
INSERT INTO `mhs` VALUES ('M0197005', 'MUH. AHSANI TAQWIM', 'COLOMADU', 'L');

Selanjutnya kita siapkan form pencariannya.

form.htm

<h1>Cari Data Mahasiswa</h1>

<p>Pilih kategori pencarian</p>

<form method="post" action="proses.php">
<table>
   <tr><td><input type="checkbox" name="nimCat"> NIM</td><td><input type="text" name="nim"></td></tr>
   <tr><td><input type="checkbox" name="namaCat"> Nama Mahasiswa</td><td><input type="text" name="nama"></td></tr>
   <tr><td><input type="checkbox" name="alamatCat"> Alamat</td><td><input type="text" name="alamat"></td></tr>
   <tr><td><input type="checkbox" name="sexCat"> Jenis Kelamin</td><td><input type="radio" name="sex" value="L"> Laki-Laki <input type="radio" name="sex" value="P"> Perempuan</td></tr>
   <tr><td></td><td><input type="submit" name="submit" value="Submit"></td></tr>
</table>
</form>

Karena bersifat multi kategori, maka sebaiknya kita gunakan komponen checkbox. Untuk masing-masing checkbox diberi nama yang berbeda-beda, misal di situ ada ‘nimCat’, ‘namaCat’ dst.

OK.. next.. ini yang paling penting yaitu script untuk pencariannya.

OK.. sekarang kita coba analisis sebentar tentang bagaimana query yang terbentuk bila user memilih suatu kategori tertentu. Sebagai contoh misalkan user memilih kategorinya adalah NIM saja, maka querynya berbentuk:

SELECT * FROM mhs WHERE nim = '...';

Bila user memilih kategorinya NIM dan nama mahasiswa, maka querynya berbentuk:

SELECT * FROM mhs WHERE nim = '...' AND namamhs LIKE '%...%';

Bila user memilih kategorinya nama mahasiswa, alamat dan jenis kelamin, maka querynya berbentuk:

SELECT * FROM mhs WHERE namamhs LIKE '%...%' AND alamat LIKE '%...%' AND sex = '...';

Dari beberapa contoh di atas, kita bisa simpulkan bahwa terdapat bagian query yang sama entah apapun pilihan kategorinya yaitu bagian: SELECT * FROM mhs WHERE. Sedangkan bagian yang berbeda-beda hanyalah bagian klausa WHERE nya saja. OK… berarti sekarang kita hanya fokus ke bagian WHERE saja

Sekarang kita analisis lagi bagian WHERE nya. Jika yang dipilih hanya NIM saja, maka dalam WHERE ditambahkan nim = '...'. Bila NIM dan nama mahasiswa yang dipilih maka nim = '...' ini ditambahkan AND namamhs LIKE '%...%' sehingga menjadi nim = '...' AND namamhs LIKE '%...%'. dan seterusnya. Dengan demikian konsep untuk pencarian multi kategori sebenarnya hanya menggabung-gabung syarat pada bagian WHERE saja.

Nah.. bagaimana jika ide di atas kita implementasikan dalam script?

OK.. mula-mula, kita beri inisialisasi untuk bagian WHERE nya adalah empty sting terlebih dahulu

<?php
$bagianWhere = "";
?>

Selanjutnya, kita buat script untuk mengkondisikan bila user memilih kategori NIM.

<?php

$bagianWhere = "";

if (isset($_POST['nimCat']))
{
   $nim = $_POST['nim'];
   $bagianWhere .= "nim = '$nim'";
}

?>

Maksud dari script di atas adalah, jika user memilih checkbox NIM yang tadi diberi nama ‘nimCat’, maka akan dibaca nilai NIM yang berasal dari textbox NIM. Selanjutnya setelah membaca nilai NIM yang mau dicari, maka pada bagian WHERE ditambahkan perintah nim = '$nim'. Supaya membentuk query SELECT * FROM mhs WHERE nim = nim = '$nim'.

Berikutnya script jika kategori nama mahasiswa dipilih

<?php

$bagianWhere = "";

if (isset($_POST['nimCat']))
{
   $nim = $_POST['nim'];
   $bagianWhere .= "nim = '$nim'";
}

if (isset($_POST['namaCat']))
{
   $namamhs = $_POST['nama'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "namamhs LIKE '%$namamhs%'";
   }
   else
   {
        $bagianWhere .= " AND namamhs LIKE '%$namamhs%'";
   }
}

?>

Nah… untuk bagian script untuk kategori nama mahasiswa ini agak beda tapi sedikit. Pada prinsipnya hampir sama, yaitu dicek dulu apakah checkbox nama mahasiswa dipilih atau tidak. Jika dipilih maka baca value nama mahasiswa yang ingin dicari. Selanjutnya, dilakukan pengecekan lagi. Jika $bagianWhere kosong, maka $bagianWhere akan ditambahkan namamhs LIKE '%namamhs%'. Maksud dari $bagianWhere kosong adalah bila user tidak memilih kategori NIM. Jika user tidak memilih kategori NIM, maka otomatis $bagianWhere nya masih kosong bukan? Namun… bila user juga memilih kategori NIM, atau dengan kata lain $bagianWhere tidak kosong alias sudah terisi dengan nim = '$nim', maka $bagianWhere ditambahkan dengan AND namamhs LIKE '%$namamhs%' sehingga menjadi nim = '$nim' AND namamhs LIKE '%$namamhs%'. Simpel bukan idenya.. :-)

Nah.. konsep di atas bisa dilanjutkan untuk kategori yang lain. Akhirnya scriptnya menjadi seperti di bawah ini

<?php

$bagianWhere = "";

if (isset($_POST['nimCat']))
{
   $nim = $_POST['nim'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "nim = '$nim'";
   }
}

if (isset($_POST['namaCat']))
{
   $namamhs = $_POST['nama'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "namamhs LIKE '%$namamhs%'";
   }
   else
   {
        $bagianWhere .= " AND namamhs LIKE '%$namamhs%'";
   }
}

if (isset($_POST['alamatCat']))
{
   $alamat = $_POST['alamat'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "alamat LIKE '%$alamat%'";
   }
   else
   {
        $bagianWhere .= " AND alamat LIKE '%$alamat%'";
   }
}

if (isset($_POST['sexCat']))
{
   $sex = $_POST['sex'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "sex = '$sex'";
   }
   else
   {
        $bagianWhere .= " AND sex = '$sex'";
   }
}

?>

Nah… setelah selesai membentuk bagian WHERE nya, terakhir kita padukan bagian WHERE yang terbentuk ke dalam query utuhnya.

<?php

$bagianWhere = "";

if (isset($_POST['nimCat']))
{
   $nim = $_POST['nim'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "nim = '$nim'";
   }
}

if (isset($_POST['namaCat']))
{
   $namamhs = $_POST['nama'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "namamhs LIKE '%$namamhs%'";
   }
   else
   {
        $bagianWhere .= " AND namamhs LIKE '%$namamhs%'";
   }
}

if (isset($_POST['alamatCat']))
{
   $alamat = $_POST['alamat'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "alamat LIKE '%$alamat%'";
   }
   else
   {
        $bagianWhere .= " AND alamat LIKE '%$alamat%'";
   }
}

if (isset($_POST['sexCat']))
{
   $sex = $_POST['sex'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "sex = '$sex'";
   }
   else
   {
        $bagianWhere .= " AND sex = '$sex'";
   }
}

$query = "SELECT * FROM mhs WHERE ".$bagianWhere;
$hasil = mysql_query($query);

?>

Sederhana bukan idenya? Kalau kita buat satu-persatu IF nya tanpa trik di atas tentu kita butuh 24 buah IF untuk semua kemungkinannya. Namun dengan trik di atas hanya butuh 4 buah IF saja.

Nah… berikut ini script secara keseluruhan untuk menampilkan hasil query berdasarkan multi kategori yang dipilih user. Untuk mempercantik tampilan hasil pencarian saya tampilkan dalam bentuk tabel.

<?php

mysql_connect("dbhost", "dbuser", "dbpassword");
mysql_select_db("dbname");

$bagianWhere = "";

if (isset($_POST['nimCat']))
{
   $nim = $_POST['nim'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "nim = '$nim'";
   }
}

if (isset($_POST['namaCat']))
{
   $namamhs = $_POST['nama'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "namamhs LIKE '%$namamhs%'";
   }
   else
   {
        $bagianWhere .= " AND namamhs LIKE '%$namamhs%'";
   }
}

if (isset($_POST['alamatCat']))
{
   $alamat = $_POST['alamat'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "alamat LIKE '%$alamat%'";
   }
   else
   {
        $bagianWhere .= " AND alamat LIKE '%$alamat%'";
   }
}

if (isset($_POST['sexCat']))
{
   $sex = $_POST['sex'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "sex = '$sex'";
   }
   else
   {
        $bagianWhere .= " AND sex = '$sex'";
   }
}

$query = "SELECT * FROM mhs WHERE ".$bagianWhere;
$hasil = mysql_query($query);
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>";
?>

OK deh.. selamat mencoba. Artikel ini saya ambil dari salah satu modul dalam Kursus PHP Online Bersama Rosihan Ari Y, sekaligus request dari Mas Yoyok (salah satu member saya).

Oya.. bila script di atas tidak jalan silakan download scriptnya langsung di bawah ini

[ Download Script ]

VN:F [1.9.3_1094]
Rating: 6.7/10 (3 votes cast)
Ide Membuat Script PHP untuk Pencarian dengan Multi Kategori, 6.7 out of 10 based on 3 ratings
Anda ingin mendownload beberapa tool programming 100% gratis?
Silakan download di FREE PROGRAMMING TOOLS.
atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal?



Beberapa artikel terkait


Share this article on:

Kata kunci: form - PHP - search -


Ada 101 komentar dalam artikel ini.

  1. Yoyok says:

    Makasih mas tutorialnya, step by step dan sangat jelas sekali. Nih baru kerasa enaknya bergabung dengan member mas Ari, setiap bertanya langsung dijawab ….

  2. rais says:

    mas yoyok ntu dak punya blog, apakah punya…

    mantap ini juga yang saya cari pak guru

    makasih juga untuk mas yoyok

    btw, mas yoyok ini member di source nya atau di kursus nya

  3. rosihanari says:

    to rais: mas yoyok ini salah satu peserta kursus, dan secara otomatis jadi member juga. Anda bisa chat langsung dengan beliau, dengan YM nya: yoyok678 :-)

  4. sta says:

    saya coba kok gak jalan Pak

    ini errornya

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/search/proses.php on line 60

    padahal saya sudah copy n paste

  5. rosihanari says:

    to sta: coba download scriptnya saja mas… atau kalo masih error, coba cek kesesuaian nama tabelnya dan juga besar kecilnya huruf di nama tabel dan fieldnya.

  6. sta says:

    terimakasih Pak, sudah bisa

    mungkin saya tidak memberikan tanda cek di checkbox, langsung isi di kotak text dan submit atau langsung submit

    httrack ah……………

    trims

  7. Ridwan says:

    ass pak arie. gini pak
    misal kita mau melakukan pencarian
    1. kita ketik di text pencarian gini ” Bank Indonesia”. nah nati hasilnya semua yang mengandung Bank dan Indonesia keluar termasuk kata Bank Indonesia sendiri dan bank Negara Indonesia juga keluar (Note: ada Negara diantara Bank dan Indonesia).

    2. Kita Ketik “Bank+Indonesia” nanti hasilnya hanya yang mengandung Bank Indonesia aja yang keluar. Terima Kasih

  8. rosihanari says:

    to ridwan: itu berarti hanya main string saja mas atau string processing… Mudah2an kali lain saya bisa menulis artikel tersebut :-)

  9. Ridwan (ex murid pak arie nih) says:

    ass. pak ada script buat bikin jam analog dan membuat kalender.terima kasih. cos aku dah googling tapi masih bingung nempatin di script phpnya.cos kebanyakan pada pake java. n aku dah lupa. maklum lama ga nyentuh php

  10. Muadz says:

    Pak kasus saya sama dengan mas sta, kesalahannya ada pada

    mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/search/proses.php on line 60

    dan pada saat saya insert SQL Query punya bpk juga ada kesalahan pada sintaq penulisannya.

    MySQL said:
    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘alamat text,
    sex varchar(10),
    PRIMARY KEY (nim)
    )’ at line 4

    Namun kesalahan itu bisa saya atasi, dengan mengedit ulang. tapi untuk script phpnya saya belum bisa. saya dah cek semua tabel dan nama fieldnya, dan saya rasa gak ada yang salah dlm penulisan nama fieldnya ataupun besar kecilnya huruf tapi tetap gak mau jalan.

    Mohon penjelasannya ya pak?
    Makasih sebelumnya….

  11. Muadz says:

    Upss..!!!
    Sorry pak tdi program saya ada kesalahan dalam pemberian nomor.

    while ($data=mysql_fetch_array($hasil)){
    $nomor++;
    echo “”.$nomor.”".$data['produk'].”".$data['harga_jual'].”".$data['status'].”";
    }

    dengan query diatas saya dah bisa jalankan script php saya dengan penambahan nomor urut.
    thanks bgt pak tutorialnya sangat membantu. maju terus buat pak rosihanari.

  12. rosihanari says:

    to muadz: ok mas.. akhirnya ketemu juga salahnya kan. Perlu diketahui saja semua script yang saya tulis di blog ini sudah melalui proses pengujian yang lama dan dilakukan berkali-kali sehingga dijamin tidak ada error. Jika Anda menjumpai error, maka dapat dipastikan ada pada script Anda entah karena salah copy atau salah tulis :-)

  13. abdul says:

    pak, bisa kasih script pencarian yang lengkap gak! maksud nya mulai dari form simpan data,pencarian,edit data,hapus data,dan data nya kalo bisa ada yang di tampilin foto atau gambar nya. tolog ya,pak. trima kasih.

  14. rosihanari says:

    to abdul: sebenarnya di blog ini sudah ada semua mas. Mungkin Anda belum mencarinya menggunakan fasilitas search yang saya sediakan di blog ini. Untuk simpan data biasanya sudah include di dalam artikel, jadi tidak ada judul artikel yang khusus simpan data. Demikian data untuk edit data dan hapus data. Untuk upload foto dan menampilkannya juga sudah ada dalam blog ini. Silakan cari ya.

  15. Rian says:

    Pa…
    saya mau nanya….
    apa ada script php untuk mengambil sekian huruf dari suatu kata atau kalimat…
    seperti pada excel kan ada fungsi left, right, mid…
    bisa tolong pencerahannya Pa…
    trima kasih…

  16. wiswa says:

    mas, gmana caranya membuat form multiple search? tapi antara satu table dengan table yang berkaitan.. ?. contoh seperti di,,

    http://www.balidwipa.com

    semoga mas berkenan untuk menjelaskan.. meskipun pada dasarnya saya bukan member mas rosihan,,.terima kasih..

  17. rosihanari says:

    to wiswa: konsepnya sama seperti postingan saya di atas, hanya bentuknya kan berupa combobox. Kemudian untuk menggabungkan beberapa kategori pencarian konsepnya sama seperti di atas.

  18. wiswa says:

    terima kasih mas,,

  19. anakkost says:

    http://anakkost.wordpress.com/

    makasih banget mas.. dah mo sharing tak coba – coba dlu ya…

  20. Nandang says:

    Pak Klo mau bikin multiple kategori pake combobox yang kebawah itu gmn caranya ya pak?

    maaf masih newbie ne
    mohon pencerahannya

  21. rosihanari says:

    to nandang: combo box ke bawah gimana maksudnya mas? :-)

  22. vee says:

    Hmm…
    sangat bermanfaat sekali,

    terima kasih banyak pak !!

    ^vee^
    .-= vee´s last blog ..Reset Password Root di OpenSUSE =-.

  23. vee says:

    Pak saya ingin tanya, di project saya,
    bila saya membuat query seperti ini :
    $sql = “SELECT * FROM data_ss WHERE $bagianwhere”;
    (pesan error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘like ‘%zul%” at line 1 )

    akhirnya saya membuat query seperti ini :
    $sql = “SELECT * FROM data_ss WHERE $bagianwhere”;
    (hasilnya bisa)

    lalu perbedaanya apa ya pak ??

    Terima Kasih
    ^Vee^
    .-= vee´s last blog ..Reset Password Root di OpenSUSE =-.

  24. rosihanari says:

    to vee: lha… trus bedanya apa mas? kok querynya sama?

  25. khalifavi says:

    wah, bagus mas artikelnya..

    tapi bagaimana kalau polanya jadi begini

    // ada variabel baru bernama hitung_kondisi yang digunakan untuk jumlah where dipanggil
    hitung_kondisi = 0;
    // tidak perlu ada checkbox, tapi hanya mencek kalau $_POST itu diisi
    if ($_POST['nama'] != “”){
    $namamhs = $_POST['nama'];
    // hitung_kondisi dicek
    if(hitung_kondisi >= 1){
    $bagianWhere .= ” AND “;
    }
    $bagianWhere .= “namamhs LIKE ‘%$namamhs%’”;
    hitung_kondisi++; // akan bertambah sesuai dengan jumlah
    }
    dst…
    dst

  26. rosihanari says:

    to khalifavi: bisa dicoba mas… ada banyak cara untuk menghasilkan output yang sama.

  27. zahra says:

    pak minta kalo untuk membuat kalender dengan php gmn pak?
    .-= zahra´s last blog ..~ PERHITUNGAN QUICK COUNT VERSI LSI UNTUK PEMILU PRESIDEN 2009 ~ =-.

  28. ryan says:

    mas tolong dong kirimin script untuk membuat tombol search

  29. uya says:

    pak tolong kirim kan cara pembuatan kalender menggunakan php ke email saya. terimakasih sebelumnya pak. uyadoang86@yahoo.co.id

  30. wahid says:

    tutorial ini sangat membantu..

    yang ingin saya tanyakan adalah:
    Bagaimana jika hasil pencarian masing – masing data itu mempunyai link sendiri – sendiri.. disini misal pencarian dg single category

    (maaf pak saya pake kasus lain)
    misalkan = pencarian data buku berdasarkan judul dan setelah data buku itu tampil dan pengunjung ingin membaca isi buku itu.
    maka dibutuhkan links lagi untuk halaman isi buku.

    mohon penjelasan dan scriptnya bagaimana, terima kasih

  31. rosihanari says:

    to wahid: berarti anda tinggal tambahkan saja link pada hasil pencarian menuju ke script lain untuk menampilkan detail informasi bukunya. Biasanya kan setiap buku ada nomor ID nya. Nah… nanti ID itu dijadikan parameter di linknya saja. Misal http://…./viewdetail.php?idbuku=12345. Anda tinggal bikin script viewdetail.php untuk menampilkan detail info bukunya berdasarkan idbuku tersebut.

  32. wahid says:

    Terima kasih sekali pak, komenku kemarin langsung di jawab, saya sangat senang dg situs ini tidak kaya situs laen yang berhari2 komenku tak liat tak kunjung ada jawaban..

    Saya membuat script sperti ini pak (maaf pak saya mencantumkannya):

    Menampilkan hasil pencarian

    < ?php
    // deleted...

    while ($res=mysql_fetch_array($sql)) {
    $nomor++; echo $nomor.'. ';
    echo $res["judul"].'';
    }
    // deleted...

    ?>

    bagaimana cara menambahkan script bapak:”http://…./viewdetail.php?idbuku=12345.”? sekali lagi terima kasih, pencerahan bapak saya tunggu…

  33. wahid says:

    Sangat – sangat membantu, smoga bpak selalu setia tuk beramal dgn berbagi ilmu kepada smua orang…

    Sukses slalu buat Pak Ari

  34. wahid says:

    maaf pak dimana saya hrus menambahkan script bpak misal: “http://…./viewdetail.php?idbuku=12345.”

    ini script saya:
    while ($res=mysql_fetch_array($sql)) {
    $nomor++; echo $nomor.’. ‘;
    echo $res["judul"].’

  35. rosihanari says:

    to wahid: link nya ditaruh di dalam echo $res["judul"].''; atau echo "<a href='viewdetail.php?idbuku=...'>".$res['judul']."</a>"; karena link tersebut ditaruh di dalam judul buku yang muncul dari hasil pencarian. Atau kalau anda tidak ingin linknya dalam judul, anda bisa letakkan di bawah judulnya, asal link tsb harus di dalam while() nya.

  36. killua88 says:

    pak, saya seorang mahasiswa tingkat akhir. sekarang saya sedang bingung dalam menentukan judul skripsi saya..inginnya sih saya membuat program dengan php. Apa bapak bisa membantu saya dengan memberikan referensi? terima kasih sebelumnya pak..

  37. rosihanari says:

    to killua88: coba anda konsultasikan dengan dosen pembimbing Anda ya mas :-)

  38. utux says:

    allow ..numpang tanya tutorial.. gmana cara membuat script php & sql utk pencarian kategori, harga dan lokasi seperti http:ayokebali.com….pls infonya ya mas…sorry newbie abis O:)

  39. wahid says:

    isi komen yg sy tuliskan ko menjadi berkurang yah pak.. script’y jadi tidak lengkap..

    while ($res=mysql_fetch_array($sql)) {
    $nomor++; echo $nomor.’. ‘;
    echo”“.$res['judul'].”“;”;
    echo”“.$res['judul'].”“;”;
    echo”“.$res['judul'].”“;”;
    echo”“.$res['judul'].”“;”;

  40. rosihanari says:

    @wahid: kok $res['judul'] nya bisa ditulis berulang-ulang?

  41. wahid says:

    masih bingung pak, untuk ID itu dijadikan parameter di linknya, misal ada ID:1, 2, 3, 4, 5.
    Apakah penulisannya cukup seperti ini saja pak:

    echo”<a href=’viewdetail.php?idbuku=1, 2, 3, 4, 5,’ rel=”nofollow”>”.$res['judul'].”</a>”;

  42. rosihanari says:

    @wahid: untuk menampilkan ID ya berarti gunakan field ID dalam tabelnya, apakah betul nama field ID nya itu ‘judul’? kok pakainya echo $res['judul']? Sebaiknya gunakan ini deh

    echo”<a href=’viewdetail.php?idbuku=”.$res['idbuku'].”‘ rel=”nofollow”>Lihat Detail</a>”;

    Dengan asums nama field untuk ID bukunya adalah ‘idbuku’. Perintah di atas diletakkan di dalam looping ketika menampilkan setiap data buku. Pada link viewdetail.php ini nanti akan diberikan parameter ‘idbuku’ yang nilainya adalah ID buku masing-masing. ID buku yang ada dalam parameter itu akan digunakan untuk query menampilkan detail buku pada script viewdetail.php nya.

  43. wahid says:

    karena kata kunci yg dimasukan dalam form pencarian buku berdasarkan field judul pak, jadi saya tulis echo $res[\'judul\'].. trus bagaimana pak

  44. rosihanari says:

    @wahid: kalo begitu ya nulisnya echo “<a href=’viewdetail.php?idbuku=”.$res['idbuku'].”‘ rel=’nofollow’>”.$res['judul'].”</a>”;

  45. wahid says:

    Mungkin bapak bosen yah klo menjelaskan pada saya.
    saya masih bingung untuk file” viewdetail.php?idbuku=” karna yg kluar akhirnya sama semua pak..

    gimana kalo bapak buatkan tutorial dengan judul
    “pencarian dan hasil pencarian masing – masing data itu mempunyai link sendiri”

    Terima kasih dan mohon maaf bila saya membuat bapak bosan

  46. rosihanari says:

    @wahid: yang sama itu hasil script viedetail.php nya? atau di hasil pencarian?

  47. wahid says:

    yang sama di hasil script viewdetail.php pak…
    biar tidak sama gimana pak?

  48. Riza says:

    Maaf pak, yang komentar aya sebelumnya itu sudah saya konfigurasi, jadi klo script yang punya bapak saat saya testing berhasil, akan tetapi sama saja permasalahannya, saat kita sama sekali tidak mengisi kotak kategori alias langsung tekan SUBMIT akan muncul pesan error :

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/cobaphp/proses.php on line 60

    nah gmn caranya agar pesan error itu tidak muncul atau kita mau memunculkan pesan “Maaf Anda harus mengisi salah satu atau lebih kategori telebih dahulu”
    gmn pak ?

    terima kasih.

  49. rosihanari says:

    @riza: nah… berarti sebelum menjalankan query pencarian harus ada validasi untuk memastikan bahwa kotak kategori harus terisi. Gunakan statement IF untuk hal ini. Logikanya adalah:

    if (!isset($_POST['nimCat']) || !isset($_POST['namaCat']) || !isset($_POST['alamatCat']) || !isset($_POST['sexCat']))
    {
    echo “maaf anda belum memilih kategori”;
    }
    else
    {
    // jalankan script pencariannya
    }

  50. Riza says:

    Terima kasih pak balesannya, sangat membantu :)
    ada yang saya tanyakan lagi pak…kode :

    if (!isset($_POST['nimCat']) || !isset($_POST['namaCat']) || !isset($_POST['alamatCat']) || !isset($_POST['sexCat']))

    || artinya AND bukan? berarti kan script diatas maksudnya jika tidak mengisi semua kategori akan keluar tulisan “maaf anda belum memilih kategori”,

    jadi klo pake script diatas kan jika kita mengisi 1 kategori, tetep yang keluar tulisan tsb, baru jika kita mengisi semua kategori maka akan ditampilkan hasil pencarian,yang saya tanyakan simbol untuk OR gmn ya pak? jadi walaupun kita hanya mengisi 1 kategori saja hasil pencarian juga dapat ditampilkan.
    Terima kasih sebelumnya pak…:D

    Salam hangat dari saya juga…

  51. rosihanari says:

    @riza: oh maaf saya salah nulis operatornya. Yang bener && (AND). Kalau || itu OR :-)

  52. Riza says:

    Makasih pak…bisa…*hore….*makasih sharing ilmunya sangat bermanaat..:D

  53. siska says:

    pak… ada tdk script untuk pencarian kategori multi tapi berdasarkan kriteria fuzzy system… msalnya kategori untuk memcari barang dengan harga murah sedang mahal …… trimakasih sebelumnya… :)

  54. rosihanari says:

    @siska: wah belum ada mbak… :-)

  55. siska says:

    hik….hik………
    ysdh makasi pak.. klo sudah ada saya mau pak… hehe

  56. azwar says:

    logikanya nggak salah tuh mas?
    aq udah download scriptnya, dah aq praktekin, tapi gagal. setelah aq telusuri, ternyata, apabila cek di 2 kategori yg berbeda, error..

    script querynya nggak otomatis nyambung, dan yg dipake hanya cek di kategori yg terakhir. sehingga querynya salah..
    (querynya jadi : select * from mhs where AND alamat like…)

  57. rosihanari says:

    @azwar: sudah bener tuh mas.. saya dah coba berbagai macam kombinasi pilihan kategori bisa jalan.. yang belum bener dari script di atas cuman ketika tidak ada satupun kategori yang dipilih.. lalu disubmit. Nah… barulah ada error. Saya minta visitor untuk memperbaikinya sendiri…

  58. Terima kasih artikelnya pak?? Pas sekali dengan kebutuhan. Btw sedikit mengalami kesulitan nih? Saya gunakan untuk searching data lagu :
    2 form : Artis & Judul. Tapi kendalanya jika dua chekcbox serta 2 form tidak di isi apa2/kosong maka ditampilkan error supplied argument is not a valid MySQL result resource.

    Yang ingin saya tanyakan adalah : menampilkan beberapa pesan kesalahan jika checkbokx tidak di tandai atau form tidak di isi semua/kosong.

    Karna ini multi kategori dan menggunakan chekckbox jadi agak bingung. Bisa tidak ya 1 form input saja tetapi otomatis di SQLnya search ke beberapa field?

    trm ksh sblumnya. snang mnjadi member di web pak Ari. ^^

  59. inan says:

    sebelum nya saya ucapkan banyak trima kasih mas karna berkat script/code
    Ide Membuat Script PHP untuk Pencarian dengan Multi Kategori dll
    tugas kuliah web saya smakin baik tpi untuk
    script pencarian tersebut lw inputan ya salah g bisa nampilkan
    1.gambar
    2.penanganan kesalahan apabila salah menginputkan

    trus untuk gambar tidak bisa muncul gambarx napa ya?padahal dah saya kasih code biasa ya bisa tpi ini g bisa
    tlong ksih penjelasan ya mas…
    1000x saya ucapkan banyak terima kasih……

  60. aip says:

    pa saya tanya,
    klo misalkan di kotak pencarian nya () itu di kasih value misalkan ‘cari’, naj ketika di klik di kotak pencarian si value ‘cari’ nya hilang.

    itu cara gmana ya pa???
    mohon bantuannya.
    trima kasih

  61. fendy says:

    Mas rosihanari saya coba pakai script tersebut sudah jalan dengan baik tapi untuk pagingnya begitu saya coba klik halamn selanjunya atau next muncul pesan spt ini

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\kanwiljakut\cPanel\cariSim.php on line 114
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\kanwiljakut\cPanel\cariSim.php on line 125

    terimaksih…

  62. wahyudi says:

    mas klo cara membuat login untuk administrator dan user pada satu form hanya ada radio button…. trs untuk admin dia bsa mengakses smua halaman edit, tambah, hapus..sdangkan uses hanya halaman trtentu…trs ada software y instan ngk mas…tolong di balas ke email saya mas…makasih bnyak…??

  63. denis says:

    thnks buat
    script nya ! mas, dan semoga sukses artikelnya…
    dan kalo bisa tolong scriptnya lebih beragam lagi

  64. arief says:

    om rosihan ada script untuk buat sistem akademik online g , yg sederhana saja pengen belajar buat ne om , ada penawaran krs yg akan diambil, output khs , login mahasiswa , input krs ke system , dll … kalau ada kabari saya y om …

  65. rosihanari says:

    @arief: wah… untuk sementara ini gak ada mas, karena pembahasannya terlalu kompleks.

  66. siska glorya says:

    pak ari..
    trima kasih sebelumnya untuk tutorialnya..
    sangat membantu sekali..
    hal yang ingin saya tanyakan..
    script seperti ini namun dalam format file wml nya bagaimana yha pa ?

    jika ada boleh di berikan scriptnya seperti apa..?
    karena saya coba2 sulit ternyata,, hehehe..
    tolong yha bapak.. thx ^^

  67. Putta says:

    terima kasih!
    ini sangat membantu kari saya+kelompok sedang mengerjakan tugas dari pembimbing magang untuk membuat sebuah aplikasi pengolahan surat dengan PHP.

    saya boleh minta script untuk searching berdasarkan periode tanggal (ex: 1Maret-10 Maret 2010)! Saya browsing di internet gak dapat”!!

    Tolong dibantu ya..

    TERIMA KASIH

  68. don2y says:

    ass mas ari…
    bagaimana script php untuk mencarian berdasarkan nama tabel,,

    kita menggunakan radio button untuk memilih tabel dalam proses pencariannya…

    jika salah satu radio button tersebut dipilih, maka hanya tabel yang di pilh saja yang akan di tampilkan hasil pencariannya….

    mohon pencerahannya….

  69. nita says:

    mlm pak… pertanyaan sy sm dgn mas don2y d ats tp bd kasus, klo pk combo box yg kbwh gmn yh pak?? mksdny combo box k bwh itu yg list/menu itu lho pak… yg pk …

    misal, ada 3 kriteria, hrga, efek samping, pengolahan, yg dplh user hny hrg dan efek samping, kriteria pengolahannya tdk aktf, jd yg aktf yg dplh oleh user saja… itu konsepnya bagaimna yh pak??

    mohon penjelasannya… terimakasih sebelumnya… :)

  70. dimaz saputra says:

    mas mau tanya tentang codeIgniter doong?

  71. rosihanari says:

    @dimaz: saya gak bisa CI mas.

  72. dinda says:

    maaf pa, saya mau tanya kalo saya untuk pencarian multikategori menggunakan $res
    bagaimana pa?agar dapat muncul hasil pencariannya..
    mohon bantuannya pa..

  73. rosihanari says:

    @dinda: apa itu $res?

  74. teguh says:

    akhirnya ktmu jg…hehehe…. makasih atas tutorialnya…..

  75. rosihanari says:

    @teguh: sama-sama mas teguh…

  76. kang fauz says:

    pak saya mau tanya,, kalo hasil pencarian tidak ditemukan dalam web kita, kemudian kita alihkan ke search engine misal (google atau yahoo) dengan kata kunci yang telah dimasukan pada halaman cari web kita, itu bagaimana scriptnya/caranya?.terima kasih sebelumnya.

  77. rosihanari says:

    @kang fauz: maaf mas belum ada ide nih…

  78. mike says:

    tutorialnya bagus pak.
    saya baru coba2 belajar php, yang ingin saya tanya gimana caranya hasil pencariannya tetap di page yang sama. apa yang harus di tambah di script bpk.
    terus kalo kategorinya pencariannya pake tanggal gmana scriptnya ya pak?
    satu lagi pak gmana setting format angka, misalnya 999999.9900 di tampilkan menjadi 999,999.99 , sebelumnya terima kasih..

  79. luk says:

    numpang nanya Modul nya udah sy Donload..
    terus di taruh dimana yah?
    saya pakai Xampp
    thx

  80. rosihanari says:

    @luk: ditaruh di folder HTDOCS yang ada di direktori XAMPP nya

  81. tuma says:

    mas kalau mau limit harus dibagian mana ?

    script saya seperti ini.

    $sql=mysql_connect($host,$name,$pass);
    mysql_select_db($db,$sql);
    $tabel=mysql_query(“select * from $tb where Word like ‘%$_POST[cari]%’ and id_kategori like ‘%$_POST[kategori]‘”);
    $jumlah=mysql_num_rows($tabel);

    $tb adalh string database saya

  82. rosihanari says:

    @tuma: tinggal ditambahin LIMIT saja di “select * from $tb where Word like ‘%$_POST[cari]%’ and id_kategori like ‘%$_POST[kategori]‘ LIMIT 0, 10″ misalnya

  83. tuma says:

    alhamdulillah saya dah bisa limit hasil , tapi kendala saya sekarang mas ingin nampilin , semacam switch untuk menampilkan hasil seperti view all , khan dah di limit ketika di klik view all nanti dia menampilka semua hasil, tanpa ada limit , thank u , maaf mas, script saya ada disini. (‘usaha cari2 jawaban) :)
    http://www.forumphp.web.id/viewtopic.php?p=36847#36847

  84. habib says:

    mas punya script pencarian yang bukan multikategori gag?

  85. rosihanari says:

    @tuma: ok… selamat ya mas… teruslah mencoba… dan berkreasi

  86. kee says:

    pak, kalo pencarianny di kategorikan dari jenis kelamin dlu, stelah itu di pencariannya katakunci nya dari kategori nama atau alamat bagaimana?
    ini scrip untuk form nya:

    – Pilih Sumber –
    Laki
    Perempuan

    -Cari Berdasarkan-
    nana
    alamat

  87. kee says:

    jadi form nya menggunakan drop down, dan ada form untuk katakunci berdasarkan nama atau alamat yang telah di kategorikan terlebih dahulu dari jenis kelamin.

    mohon bantuannya :)

  88. kitie says:

    ms, q download skripe ms bs,tp q bwt sndri lgi ko g bs y?slhny di baris 60
    thnks

  89. ardi says:

    mass gw gagal scripnya..
    ini errornya :
    Gagal queryYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 1

  90. rosihanari says:

    @ardi: itu errornya di query sql nya mas, silakan baca http://blog.rosihanari.net/teknik-debugging-script-php-mysql untuk debugging scriptnya…

  91. rosihanari says:

    @kitie: ya… berarti di baris 60 itu ada yg salah mas… coba cek lagi ya..

  92. charisma says:

    assalammu’alaikum wr wb pak rosihanari ,maaf pak ternyata menggunakan isset hanya benar di logika pak,sebab pada prakteknya yang di gunakanadalah !empty ,kecuali untuk komponen textarea.
    oh ya pak ,kalau bapak tidak percaya silahkan tampilkan query nya dengan perintah echo pasti dapat bapak baca query where yang lain malah di ikutkan juga,padahal kita hanya mengklik salah satu checkbox,hmm selain itu solusi bagus adalah mengganti AND menjadi OR ,sebab sewaktu pencarian kan harus di temukan salah satu yang kita cari tadi ,kalau tidak bosan juga carinya ,lama ketemunya ..he..he..wassalammu’alaikum wr wb pak.

  93. rosihanari says:

    @charisma: oya??? ok deh ntar coba tak ceknya… thanks atas masukannya.

  94. nova says:

    pak saya mau nanya…
    klo searchnya pkenya list/menu bukan yang kaya diatas gimna caranya ya pak???????
    terima kasih

  95. rosihanari says:

    @nova: search via menu/list gimana maksudnya mas?

  96. pemula says:

    maaf pak saya pemula mau tanya,

    saya kesulitan untuk membuat sebuah pencarian dengan komponen option yang berisi kategori staff (dari tabel staff) dan mahasiswa (dari tabel mahasiswa) serta textbox untuk pencarian dan sebuah button.
    Untuk melakukan pencarian, pertama kita pilih kategori terlebih dahulu, kemudian kita isi textbox dengan keyword.

    mohon bantuannya. .

  97. indra says:

    mas…,klo multi combo box dgn lbh dr 2 dropdown list yg slng berelasi bgmn caranya ya mas?tlg bngt…

  98. anna says:

    assalamu’alaikum wr.wb
    saya pemula pak
    saya sedang membuat program akademik untuk sekolah pak,saat saya gunakan script diatas untuk pencarian dengan 3 kategori (jabatan,golonga,mata pelajaran)..gagal pak,karna jika diganti kategori pencariannya,,hasilnya tetap sama,,jadi tidak pengaruh pak,,,terimakasih pak.
    wassalam



Tolong beri komentar donk!

Komentar Anda akan berguna untuk kemajuan blog ini.


Mohon maaf, komentar yang menggunakan email palsu atau komentar bernada negatif atau cemooh secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil dalam daftar komentar.

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word