Pencarian data sudah bagian erat dari suatu aplikasi. Dengan fasilitas ini hidup akan serasa sedikit lebih indah. (Jangan banyak-banyak nanti batuk)
Script ini nggak canggih-canggih amat dan nggak aman. Karena script dibawah hanya menunjukkan bagaimana mencari record dengan kata kunci sebuah kalimat. Dan kalimat tersebut dipecah menjadi kata. Selanjutnya setiap kata akan menjadi bahan filter untuk semua field yang ada dalam suatu table.
Diasumsikan pengguna telah mengenal AdoDB. Paling tidak untuk nyambung ke database.
function CariYuk($strSumber=false,$connDB=false){
if(!trim($strSumber){
echo 'Maaf parameter $strSumber masih kosong';
return;
}
if(!$connDB){
echo 'Maaf parameter $connDB masih kosong.';
return;
}
/*
$connDB adalah object dari AdoDB untuk koneksi database
*/
/* Mengkoleksi field-field yang ada dalam table */
$SQL="SHOW COLUMNS FROM nama_table";
$rs=$connDB->Execute($SQL);
if(!$rs){
echo $connDB->ErrorMsg();
return;
}
$arrayFields=$rs->GetArray();
/* pembuatan SQL untuk filtering */
$SQL="SELECT * FROM nama_table";
if($strSumber){
/* Memecah kalimat menjadi kata dalam sebuah array */
$arrayKata=explode(" ",$strSumber);
/*
Membuat filter pada masing-masing field dan
masing-masing kata
*/
for($i=0;$i<count($arrayKata);$i++){
$Kata=$arrayKata[$i];
for($ix=0;$ix<count($arrayFields);$ix++){
$namaField=$arrayFields[$ix];
if(trim($Kata)){
@$hasil.="LOWER($namaField) LIKE '%$Kata%' OR ";
}
}
}
if(@$hasil){
$hasil=substr($hasil,0,-4);
$SQL.=" WHERE $hasil";
}
}
$rs=$connDB->Execute($SQL);
if(!$rs){
echo $connDB->ErrorMsg();
return;
}
return $rs->GetArray();
}
/*Mari kita coba dengan script dibawah ini*/
$conn=&ADONewConnection("mysql");
if(!$conn){
echo 'Maaf ... Pembuatan ADOConnection gagal';
exit;
}
if(!$conn->Connect(
$HostName,
$UserName,
$Password,
$DatabaseName
)){
echo 'Maaf ... Tidak bisa terhubung ke Database';exit;
}
$arrayHasil=CariYuk(
"Siapa aku Yah. Apakah aku ada disana ?",
$conn
);
echo "<pre>",print_r($arrayHasil),"</pre>";
Semoga bermanfaat.
Kritik dan sarannya dipersilahkeun.


hm…