Studi Kasus : Membuat script untuk pencarian data dalam database
Kebutuhan : Webserver Packages, already installed.
Searching, merupakan fasilitas yang hampir selalu ada dalam setiap aplikasi, baik aplikasi berbasis web ataupun desktop. Setiap halaman web/ blog juga akan ditemukan fasilitas ini. Tutorial berikut akan memberikan konsep dasar dari searching, dengan melakukan pencarian pada data terstruktu (database).
Ok, langsung praktik saja.
Step 1 : Persiapkan Database
- Buat database dengan nama db_tutorial
- Siapkan tabel dengan nama tb_student, dengan struktur tabel seperti gambar dibawah ini.

- Insert-kan beberapa sample data, misal seperti gambar dibawah,

- Done with the database!
Step 2 : Persiapkan Folder Kerja
- Buat folder dengan nama searching dalam document root anda
- Simpan semua file dalam praktikum ini dalam folder tersebut.
Step 3 : Membuat script koneksi ke DB
- Ketikkan script berikut,
<?php $host = "localhost"; $user = "root"; $pass = ""; $dbName = "db_tutorial"; mysql_connect($host, $user, $pass); mysql_select_db($dbName) or die ("Connect Failed !! : ".mysql_error()); ?> - simpan dengan nama connect.php
- Penjelasan : Script ini akan digunakan untuk menghubungan aplikasi kita dengan database db_tutorial. Sesuaikan username dan password dengan setting-an mysql anda.
Step 4 : Membuat form pencarian
- Ketikkan script berikut,
<html> <head> <title> Halaman Pencarian </title> </head> <body> <form name="formcari" method="post" action="search_exe.php"> <table width="330" border="0" align="center" cellpadding="0"> <tr bgcolor="orange"> <td height="25" colspan="3"> <strong> Student Searching ! </strong> </td> </tr> <tr> <td> Name </td> <td> <input type="text" name="name"> </td> </tr> <td></td> <td> <input type="SUBMIT" name="SUBMIT" id="SUBMIT" value="search" > </td> </table> </form> </body> </html>
- simpan dengan nama formsearching.php
- Penjelasan : script diatas adalah HTML script biasa yang akan menampilkan form. Perhatian bagian
action="search_exe.php", bagian ini dimaksudkan bahwa form akan diproses oleh script search_exe.php
Step 5 : Membuat script pemrosesan dan menampilkan hasil searching
- Ketikkan script berikut,
<?php include "connect.php"; $name= $_POST['name']; //get the nama value from form $q = "SELECT * from tb_student where name like '%$name%' "; //query to get the search result $result = mysql_query($q); //execute the query $q echo "<center>"; echo "<h2> Hasil Searching </h2>"; echo "<table border='1' cellpadding='5' cellspacing='8'>"; echo " <tr bgcolor='orange'> <td>No</td> <td>Nama Mahasiswa</td> <td>Alamat</td> </tr>"; while ($data = mysql_fetch_array($result)) { //fetch the result from query into an array echo " <tr> <td>".$data['no']."</td> <td>".$data['name']."</td> <td>".$data['address']."</td> </tr>"; } echo "</table>"; ?> - simpan dengan nama search_exe.php
- Penjelasan dapat dilihat di script comment
Step 6 : Testing Code
- Pergi ke http://localhost/searching/formsearching.php. Anda akan melihat form seperti dibawah,

- Masukkan nama pada field nama (misal nama yang telah diinsert ke DB, yaitu june)

- Klik tombol search dan anda akan melihat hasilnya

Selamat berkreasi dengan PHP
Happy Coding..
Hal yang juga menarik:
Hak Cipta
Semua skrip dan teknik dalam artikel di itx.web.id boleh digunakan sebagaimana kehendakmu tanpa perlu mencantumkan sumber. Kamu tidak boleh mengkopi seluruh artikel, dalam Bahasa Indonesia ataupun diterjemahkan ke dalam bahasa lain.
This post is also available in: English
English
Indonesia
kalo search dari banyak tabel gimana caranya ya?
mohon petunjuk ni..
trims
ya disearch aja satu-satu.
pake perulangan “for” atau apalah
kasus nya gimana dulu?
search dari banyak tabel.. asal dari berbagai tabel tersebut ada relasinya, tinggal ganti script ini –> $q = “SELECT * from tb_student where name like ‘%$name%’ ”
sesuaikan saja dengan kebutuhan
Kalau nandai hasil pencariannya gimana? misalnya yang dicari “Aku” nanti aku di hasil pencariannya di kasi warna. (unsure)
menggunakan fungsi str_replace, jadi hasilnya nanti ditambahi suatu tag.
contohnya sebelum $data['name'] di-echo, diproses dulu:
bisa dikasi contoh script untuk pencarian dari banyak table?
susunan tablenya kaya’ apa dulu. ntar bisa macem2 caranya tergantung table yg ada
kok search saya ndag skses seeh,apanya yg slah yah,,
setiap sya mngklik tmbol search mncul peringtan seperti ini
“Connect Failed !! : Access denied for user ‘www-data’@'localhost’ (using password: NO)”
apanya yg slah yach…?
maaf,,,
ternyata sya yg slah sya lupa memberikan koneksi nya,,,
tapi ndag ada tmpilan nya,,,
data yg di cari nggak muncul,,,
data di dalamnya memang ada atau tidak?
kalo dicoba querynya “SELECT * from tb_student where name like ‘%$name%’ ” langsung di phpmyadmin hasilnya gimana?
ia sya sudah coba dengan menggunakan script sprti itu,tapi msih blum ada hsil nya,brhbung dgn saya mau mencari data brdsrkan keterangan bkan nama,
jadi sya pkai seperti ini “SELECT * from upload where keterangan like ‘%$keterangan%’ “;
udah cocok,ato gmna,,,?
sudah dicoba querynya langsung di phpmyadmin?
maaf mksud nya gmna…?
mbak gmna neeh,,,
sya msih blom bsa menmpilkan isi database yg di cari
hey mbak ayhu,,,!!!
ngpaen kmu nulis prtnyaan km d form sya,,,?
jgn replay dsni mbak,buat kolom bru donk,,,
tpi nggak pa2 dech, kbtulan sya jga mmpnyai mslah sprti itu, dri kmrin sya msih blom jga menampilkan isi file yg di cari
masalah memang banyak, jadi jangan ragu mencoba.
tool yg wajib dipunyai: phpmyadmin, kalo gak tahu apa disearch aja.
checklist dulu:
tabelnya udah diisi data belom?
iya sya sudah mengisi tabel database nya,
mkanya itu sya heran kok,msih ndag bsa nampilin isi data yg di cari
di bawah kode ini:
$result = mysql_query($q);
dikasih:
echo $q;
ntar khn keluar querynya apa. trus query tsb dicopas dan dijalankan ke SQL-nya phpmyadmin, trus lihat hasilnya. hal ini utk mengetahui apakah querynya udah bener apa blm.
di saat saya mencari keterangan yg brjudul “qwerty”
muncul sperti ini SELECT * from upload where keterangan like ‘%qwerty%’
mksudnya itu apa…?
itu SQLnya. sekarang dicobakan di phpmyadmin.
gmna neeh,,,
sya msih blom brhsil menampilkan data yg di cari,,,
sya pusing bnget
mksudnya d cobakn gmna,,,?
n cra nya bgaimna
buka phpmyadmin lalu jalankan SQL itu di sana
sql yg mna yg hrus sya jlan kan di phpmyadmin sya…
sql yg ini $q = “SELECT * from upload where keterangan like ‘%$keterangan%’ “;(sql yg di dlam file)
atau yg ini SELECT * from upload where keterangan like ‘%asd%’ (sql yg muncul pda saat setelah menklik tmbol search)
coba saja
sql yg ini $q = “SELECT * from upload where keterangan like ‘%$keterangan%’ “;(sql yg di dlam file)
saya sudah coba menjlan kan di phpmyadmin tapi kok mncul eror,,
terus
sql yg ini SELECT * from upload where keterangan like ‘%asd%’ (sql yg muncul pda saat setelah menklik tmbol search)
saya sudah coba menjlan kan di phpmyadmin jga klom field keterangan da klom “asd” (isi keterangan) seperti terblok
tulisannya errornya apa??
k’ saya sudah bisa menampilkan data yang di cari,,,
tapi saya mau kalau kolom search tidak di isi,ada muncul peringatan bhwa harus mengisi klom search,,,
karna saat ini, mmg sya sudah bisa menampilkan data yang di cari,,tpi saya coba dengan tidak mengisi kolom search nya kok lngsung mncul semua data yg ada di dlam database saya,,,
kolom search bagian mana?
mksud nya gini k’,,,
sya kan mencri data berdasarkan keterangan,,,
trus sya buat kan form untuk mencari data,,,
yang sya ingin kan itu bgmna script nya untuk memberi peringatan apabila mengklik tombol search lantas tidak ada kata atau tulisan yang di ketik di dlam form pencarian (dlam klom keterangan),,,
karna sekarang ini saya sudah coba untuk mencari data sudah berhasil,,,
tapi di saat sya coba mengklik tombol search,tanpa mengetik kata atau kalimat, hasil nya itu semua data-data yang di dalam database saya muncul
btw kmaren tuh kesalahan di mana?
kalo mo melakukan sesuatu jika tidak ada input. tinggal tambahkan if sebelum proses.
misalnya letakkan kode berikut setelah
$name= $_POST['name']; //get the nama value from formif(!$name) die('Kata pencarian belum dimasukkan');OK dech kk…!!!
mksih atas bntuan nya,,,
tapi saya mau nanya lagi kak,,,
gini saya kan buat kan hlman login untuk msuk ke dalam form dan itu sudah brhasil tapi ada satu mslah ketika saya sudah login dan sudah berada di form yang di tuju kenapa pda saat saya mengklik tmbol back kok bsa kmbli ke hlman login,,,
nah,, yang saya mau itulah bgmna script nya agar tmbol back itu tidak brfngsi bgtu pula pda saat setelah logout,,,krna logout nya jga mnglmi hal yg sama sprti itu
saya sudah login tpi kok msih bsa kmbli lagi ke hlman form,shrusnya kan login dlu bru bsa msuk
thanks sblmnya
pakai session
kak saya sudah sisip kan session ke dlam file form saya dan script nya itu sprti ini
tolong coba cek script saya itu kak,,sbnrnya yg slah itu apa krna script itu saya sudah gnakan di dua form sya yg lain nya dan hasil nya sukses,tapi pda saat sya gunakan lagi di fom sya yg satu kok pda saat mmbuka form login kok lngsung mnju ke form yang di tuju stlah login (formupload.php),,,?
tolong cek script saya k’
mana?
k’ bisa mnta script session nya ndag,,,
maaf k’ kok script yang saya kirim ndag nampil seeh..?
ada tidak script buat login dan logout nya…?
ini yg pake codeigniter : http://itx.web.id/php/sistem-login-simple-md5-logout-dengan-codeigniter/
bisa minta script untuk memberi peringatan apabila ada user langsung mengklik tmbol login tanpa mengisi username dan passwrd nya,,,?
mis : peringatan bahwa “Anda belum memasukkan username dan password
bgtu jga klo cma pass atau email yg di isi
kak bagaimana cara membatasi hasil pencarian.misalnya: hasil pencarian sebanyak 20 baris.. kemudian kita akan menampilkan 10 baris terlebih dahulu lalu 10 baris yang lain ditampilkan di halamn yang laen.. mis pake kode ?page=2. tolong balas ke email ya kaks plese codenya ditunggu..
dalam querynya dikasih LIMIT
minta script untuk query LIMIT nya donk,,,
sya jga mau buat sprti yang di ktakan mas wahyu di ats
seperti query di atas tingal ditambahi kata limit.
“SELECT * from tb_student where name like ‘%$name%’ LIMIT 20″;
sya sdah msukkan script yg mbak kasi tpi kok ndag ada reaksi nya seeh,,,
masih ttap sprti itu
tetap apanya?
tetap tidak ada perubahan, semua data muncul
kyaknya limitnya ndag brfngsi
coba kalau LIMIT 5
ini sdah berhsil, sudah ada tmpilan nya,tapi susunan data yang tmpil tdak berurut,,
terus pda saat saya mengklik tmbol hlman dua kok nggak ada tampilannya seeh,,,
kira2 itu pnybab nya apa yach…?
itu khn script utk proses di satu halaman saja.
halaman dua dst ya butuh pemroses lagi dong.
coba deh googling tentang LIMIT dan ORDER BY di mysql.
<?php
$conn = mysql_connect("localhost", "root", "admin");
mysql_select_db("dbname");
//mencari banyak data yang ada dalam tabel
$sqlCount = "select count(id) from upload";
$rsCount = mysql_fetch_array(mysql_query($sqlCount));
$banyakData = $rsCount[0];
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$limit = 10;
$mulai_dari = $limit * ($page – 1);
$sql_limit = "select * from upload order by keterangan limit $mulai_dari, $limit";
$hasil = mysql_query($sql_limit);
//menampilkan data
echo '
ID
Keterangan
Bagian
Tanggal
Data Arsip
‘;
while($data = mysql_fetch_array($hasil)){
echo ”;
echo ”.$data['id'].”;
echo ”.$data['keterangan'].”;
echo ”.$data['bagian'].”;
echo ”.$data['tanggal'].”;
echo ”.$data['name'].”;
echo ”;
}
echo ”;
//membuat pagination
$banyakHalaman = ceil($banyakData / $limit);
echo ‘Halaman: ‘;
for($i = 1; $i <= $banyakHalaman; $i++){
if($page != $i){
echo '['.$i.'] ‘;
}else{
echo “[$i] “;
}
}
?>
di addres bar yg tertampil gimana?
utk halaman 2 mustinya:
http://namaserver/limit.php?page=2
utk hlmn 3 mustinya:
http://namaserver/limit.php?page=3
dst
di address bar dah ada tampilan nya cuman tampilan nya itu ndag berurut,,,
terus klo di saya kli hlman ke dua, ke tiga dst..
itu tidak ada satu pun data yag nampil sma klom nya sja
dan untuk menampilkan data pada halaman brikut nya saya pakai script
(echo ‘['.$i.'] ‘;)
saya sudah berhasil mbak tapi saya mau mnta scriptnya lagi buat menambahkan tombol sebelumnya dan selanjutnya
krna sya takut kan nnti kalau data ku udah bnyak nnti halaman nya tambah panjang lagi]
tq before
pake itu khn halaman sebelum dan sesudahnya sudah tercetak.
blum ada mbak,,,
dsni mmng sudah tercetak nmor2 hlman brikut nya tapi tmbol untuk next dan previous nya nggak ada
sya mau nya itu sprti ini
prev 1 2 3 4 5 6 7 8 9 10 ….30 next
model nya seperti itu mbak
krna skrng itu tmpilan nya hnya sprti ini
1 2 3 4 5 6 7 8 9 10 dst sampai data itu brkhir,,,
kan klo gtu mbak kan ribet jadi nya,,,
krna klo data semakin bnyak masa urutan hlman jga akan semakin pnjang gtu
coba pelajari ini: http://svn.wp-plugins.org/wp-pagenavi/trunk/core.php
semoga membantu
kok ndag ada penjelasan nya seeh
sya ndag mngrti
klobuat halaman pencarian data tapi dari lisbox gmn ya?
Mau tanya donk klo versi OOP nya gmn ya?
saya mau nanya ada ndag script buat mencari file berdasarkan kata2 yang ada di dlam file tersebut…?
klo ada bagi donk
Hi mau nanya donk kk..
kok saya malah jadi tampil semuanya yg ada di database padahal udah di sesuaikan semuanya..
gimana ya?
oke banget nih … aku sudah coba dan sukses … tapi ada kendala nih… (thinking) gimana kalau kita mau memasukkan data ke tabel yang sudah dibuat? tanpa perlu repot2 masuk ke databasenya? maksud saya form untuk pengisian data sekaligus untuk meng edit data tersebut jika ada kesalahan penginputan?! ….. wah jadi pengen belajar terus nih kalo gini nih….
ilmu yang sangat bermanfaat!
makasih sebelumnya & permisiii untuk copas nyang diatass
klo 3 tabel gmn?
msalnya tabel siswa kelas1, kelas2, kelas3…
yg mw dicari nama siswanya…
saya lagi merancang aplikasi alkitab online menggunakan php dan my sql,,mohon sarannya yaa,,buat pemanggilan dan menampilkan pasal,ayat dan isi setelah dipilih dari combobox. juga pencarian kata dalam alkitab.
mas mw tanya dong,
bikin search tapi ketika disearch data yg muncul bisa di update sma di delete, terus jika data yg di panggil tidak ada harus mengeluarkan pesan, itu gimana mas?
gan codingnya error pas ane klik cari
“Warning: include(koneksi.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\SKRIPSI\test2\search_exe.php on line 2
Warning: include() [function.include]: Failed opening ‘koneksi.php’ for inclusion (include_path=’.;C:\xampp\php\PEAR’) in C:\xampp\htdocs\SKRIPSI\test2\search_exe.php on line 2
Warning: mysql_query() [function.mysql-query]: Access denied for user ‘ODBC’@'localhost’ (using password: NO) in C:\xampp\htdocs\SKRIPSI\test2\search_exe.php on line 5
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\SKRIPSI\test2\search_exe.php on line 5
Hasil Searching
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\SKRIPSI\test2\search_exe.php on line 15″
saya nak buat carian nama sekolah dengan cara yang mudah sekiranya tidak ingat kod sekolah tersebut.saya guna combobox..help me plissssss
thx sob atas infonya//…..
bos aq buat web kan nggak pakek php cuma css dan html…. trs cara buat searchnya gmn soalnya ni tinggal searchnya aja yang g fungsi….
Mas, kalau mau buat pencarian dgn multi kolom dan hasilnya ditampilkan dalam bentuk tabel, terus tiap hasil pencarianya bisa ditampilkan detil infonya gimana Mas? Misalnya pencarian berdasarkan provinsi, rentang usia, kemudian hasil pencariannya bisa ditampilkan detilnya satu-satu.
Maklum Mas, msh baru..
mau tanyaknih lagi bingung.
gimana cara untuk menyimpan data record pada tabel.
table disini fieldnya dinamis, misal pada tabel mhs filednya ada idmhs,nama;
sehingga perintah sqlnya:
insert into mhs (idmhs,nama) value (\\\\\\\’$idmhs\\\\\\\’,\\\\\\\’$nama\\\\\\\’);
bagaimana jika ada penambahan filed kelas. sehingga filed table pada mhs menjadi (idms,nama,kelas); untuk penambah field itu saya sudah bisa. yang jadi permasalahan bagaimana cara menginputkan data yang fildnya bertambah secara dinamis. skrip penyimpanannya bagaimana.
mohon bantuan pra programer.
gan kalo saya punya data nya dari exel trus di convert ke sql bisa ga. supaya ga ketik atu atu gt.
Bos klo databsenya dari ms access gmn ? konek… ok tapi mentoknya selalu di ” Fatal error: Call to undefined function odbc_query() “.
Tolong dong bos…. udh diotak atik…. blom nemu nih…
kalo search nya langsung di klick datanya keluar semua…
gimana supaya bisa tervalidasi, supaya pada saat input box kosong, keluar pesan. ? “anda belum memasukkan kata yang di cari..? ”
makasih…
http://itx.web.id/wp-includes/images/smilies/smiley-dance.gif
Nah, kalo sistem pencarian dengan multi kata & lebih detail dengan menggunakan array gimana Mba?
Misalnya :
dimana rumah kamu
yang kita cari :
* dimana rumah kamu
* dimana rumah
* rumah kamu
* dimana kamu
* dimana
* rumah
* kamu
trus masing-masing diberikan nilai & dicari modusnya. Ini implementasi untuk pencarian lebih detail. Bisa dibantu? tolong send email ke gotechidna@gmail.com
(Dulu pernah bikin tapi ilang karena hd keformat T_T)
ak mau nanya…gmana ya mau search data di dlm dbase sekalian ama picturenya..ak berhasil menyimpan data ke dbase dan picture ke folder..tapi bila ak mau search base on ID…kok hanya data aja terpapar…piturenya enggak…g mna ya kak…terima kasih ya atas bantuan.
malaysia user
Terima Kasih petunjuknya. web anda sangat sangat sangat membantu saya
Terima Kasih
bisa ga bikin jam berubah otomatis berwarna merah
????

saya ga tau……..
tolong dongg
Tolong bantu dong..
Gimana codingnya kalo hasil pencariannya tetap di halaman yang sama, jadi gak perlu bolak-balik gt. Udah kucoba tp fatal error.
Mas, ternyata bisa pake AJAX yg kutanyain itu, tapi kok hasilnya jadi ditampilin berulang2 ya..????
sy ikut nanya…..
sy udah ikuti cara yg diterangkan diatas ..tapi gambar yang upload tidak masuk ke C:\xampp\htdocs\halloMobile\image\ …tp gambar hasil upload ada ke folder E:/DocumentRootTuni/helloMobile/image/ Tolong pencerahan … Trm ksh:?:
kalo untuk pencarian dua kategori gmn??
misalnya pencarian pada nomer dan sekaligus alamat dalam satu tombol?????
Assalamu’alaikum
mau naya nich…Gmna sich Scripting untuk Searching nya satu dalam Dua buah yang berbeda..
teimaksih..
Ditunggu.
contoh untuk yang multiple keyword bukan di namanya aja lho …
<?
if (isset($_POST['search'])) {
if ($_POST['keyword'] !='' ) {
$keyword = trim($_POST['keyword']);
$sql = "SELECT * FROM pegawai WHERE nik LIKE '%" .$keyword. "%' OR nama LIKE '%" .$keyword. "%' OR tempatlahir LIKE '%" .$keyword. "%' OR tanggallahir LIKE '%" .$keyword. "%' OR divisi LIKE '%" .$keyword. "%' OR alamat LIKE '%" .$keyword. "%' ";
$query = mysql_query ($sql);
$countData = mysql_num_rows ($query);
//dicek apkah data ada atau tidak ada
//jika data ada atau lebih dati nol, lakukan looping data
echo "”;
echo “”;
echo “NO\n”;
echo “NIK\n”;
echo “NAMA\n”;
echo “TEMPAT LAHIR\n”;
echo “TANGGAL LAHIR\n”;
echo “DIVISI\n”;
echo “ALAMAT\n”;
if( $countData > 0 )
{
$i=0;
while($data = mysql_fetch_assoc($query)) {
$i++;
echo “”;
echo “”.$i.”\n”;
echo “”.$data['nik'].”\n”;
echo “”.$data['nama'].”\n”;
echo “”.$data['tempatlahir'].”\n”;
echo “”.$data['tanggallahir'].”\n”;
echo “”.$data['divisi'].”\n”;
echo “”.$data['alamat'].”\n”;
echo “”;
}
} else {
echo “”;
echo “- data tidak ditemukan -“;
echo “”;
}
echo “”;
echo “ ditemukan data “.$countData.” record“;
echo “”;
echo “”;
} else {
echo ‘- silahkan masukkan keyword -‘;
}
}
?>
Tutorial yang bagus. Trims atas ilmunya.
ini saya punya form pencarian yang menggunakan list menu…tpi kenapa klo listnya gak diselect tetep membaca
tolong bagaimana caranya klau list menu g di select jadi ia otomatis g ada valuenya
Form Tenaga Kerja
Pencarian Data Karyawan
NIP
mas butuh pencerahan
knapa pas mau buat tabel trus auto increment di centang waktu save jd error
not null auto increment gt
repp pencerahanya thank’s
tes
klo eror’a kyk gni knp mas?
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\iq\search_exe.php on line 15
ko saya isi kosong si form nya.. malah ngelink jadi semua table yah …????
Woow, very nice post. Thanks
.
PHP is a powerful tool for making dynamic and interactive Web pages – PHP Examples.
mas mau nynya klo udh berhasil membuat tapi waktu diketik nama lalu di searc muncul Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\searching\search_exe.php on line 18 nnnnn mksd pa n tolng bantuANYA