Membuat Search Engine Menggunakan Ajax
1.
Buat database sql dengan nama databuk
Database: `databuku`
--
--
CREATE
TABLE IF NOT EXISTS `buku` (
`id_buku` int(10) NOT NULL AUTO_INCREMENT,
`judul_buku` varchar(64) NOT NULL,
`id_penerbit_buku` int(10) NOT NULL,
`id_kategori_buku` int(10) NOT NULL,
`pengarang_buku` varchar(64) NOT NULL,
`kd_rak_buku` varchar(32) NOT NULL,
PRIMARY KEY (`id_buku`)
)
ENGINE=InnoDB DEFAULT CHARSET=latin1
AUTO_INCREMENT=7 ;
--
--
Dumping data for table `buku`
--
INSERT
INTO `buku` (`id_buku`, `judul_buku`, `id_penerbit_buku`, `id_kategori_buku`,
`pengarang_buku`, `kd_rak_buku`) VALUES
(1,
'Muhasabah Cinta Seorang Istri', 4, 2, 'Asma Nadia', 'A01'),
(2,
'Agar Nikah Lebih Barokah', 5, 2, 'Muhammad Nashiruddin Al Albani', 'A01'),
(3,
'Kitab Suci Web Programming', 6, 1, 'Alexander F.K.Sibero', 'A02'),
(4,
'Trik dan Solusi Jitu Pemrograman Web', 2, 1, 'Sandi Hariadi', 'A03'),
(5,
'Trik Dahsyat Menguasai AJAX dengan JQuery', 2, 1, 'Lukmanul Hakim', 'A03'),
(6,
'Buku Pinter JQuery dan PHP', 6, 1, 'Abdul Kadir', 'A02');
--
--
Table structure for table `kategori`
--
CREATE
TABLE IF NOT EXISTS `kategori` (
`id_kategori` int(10) NOT NULL
AUTO_INCREMENT,
`nama_kategori` varchar(32) NOT NULL,
PRIMARY KEY (`id_kategori`)
)
ENGINE=InnoDB DEFAULT CHARSET=latin1
AUTO_INCREMENT=4 ;
--
--
Dumping data for table `kategori`
--
INSERT
INTO `kategori` (`id_kategori`, `nama_kategori`) VALUES
(1,
'Informatika'),
(2,
'Agama'),
(3,
'Umum');
--
--------------------------------------------------------
--
--
Table structure for table `penerbit`
--
CREATE
TABLE IF NOT EXISTS `penerbit` (
`id_penerbit` int(10) NOT NULL
AUTO_INCREMENT,
`nama_penerbit` varchar(32) NOT NULL,
PRIMARY KEY (`id_penerbit`)
)
ENGINE=InnoDB DEFAULT CHARSET=latin1
AUTO_INCREMENT=7 ;
--
--
Dumping data for table `penerbit`
--
INSERT
INTO `penerbit` (`id_penerbit`, `nama_penerbit`) VALUES
(1,
'Andi Offset'),
(2,
'Loko Media'),
(3,
'Aqwam'),
(4,
'Lingkar Pena'),
(5,
'Pro-U Media'),
(6,
'Mediakom');
2.
file untuk koneksi databasenya
$host='localhost';
$user='root';
$pwd='';
$database='databuku';
$conn=mysql_connect($host,$user,$pwd) or die
(mysql_error());
mysql_select_db($database,$conn);
?>
|
3.
Kode sebagai
interface utamanya
include "db_connect.php";
?>
rel="stylesheet"
type="text/css"
href="style.css">
|
id="undertop">
id="logo"
src="MyBooks.gif">
id="form_cari"
method="post">
type="text"
id="kata"
name="kata"
onkeyup="lihat(this.value)">
type="submit"
id="cari"
value="Cari"/>
id="kotaksugest"
style="font-style:bold;
position:absolute;background-color:#F8F8F8;
border:1px solid
#D8D8D8;width:393px;visibility:hidden;
margin-left:353px;z-index:100;list-style:none;
font:14px Arial bold;padding:5px 0 5px
5px;margin-left:352px;">
include "searchQry.php";
?>
4.
Kemudian buat file baru dengan nama ajax.js yang memuat
fungsi-fungsi javascript untuk menampilkan suggestion
var drz;
function
lihat(kata){
if(kata.length==0){
document.getElementById("kotaksugest").style.visibility
= "hidden";
}else{
drz = buatajax();
var url="searchSuggest.php";
drz.onreadystatechange=stateChanged;
var pilihan=encodeURIComponent(document.getElementById("pilihan").value)
var kata=encodeURIComponent(document.getElementById("kata").value)
drz.open("GET",
"searchSuggest.php?pilihan="+pilihan+"&kata="+kata,
true)
drz.send(null)
}
}
function
buatajax(){
if (window.XMLHttpRequest){
return
new XMLHttpRequest();
}
if (window.ActiveXObject){
return
new ActiveXObject("Microsoft.XMLHTTP");
}
return
null;
}
function
stateChanged(){
var data;
if (drz.readyState==4 && drz.status==200){
data=drz.responseText;
if(data.length>0){
document.getElementById("kotaksugest").innerHTML
= data;
document.getElementById("kotaksugest").style.visibility
= "";
}else{
document.getElementById("kotaksugest").innerHTML
= "";
document.getElementById("kotaksugest").style.visibility
= "hidden";
}
}
function isi(kata){
document.getElementById("kata").value =
kata;
document.getElementById("kotaksugest").style.visibility
= "hidden";
document.getElementById("kotaksugest").innerHTML
= "";
}
|
5.
Setelah itu ketik kode di bawah ini untuk menampilkan data suggestion
berdasar inputan dari user ! File ini akan dipanggil pada
fungsi lihat(kata) yang terdapat dalam file ajax.js. Simpan file
ini dengan nama searchSuggest.php
include
"db_connect.php";
$pilihan
= $_GET['pilihan'];
$kata
= $_GET['kata'];
$query=null;
if($pilihan
== 'judul'){
$query
="select judul_buku from buku where judul_buku like
'$kata%' ";
}
else if($pilihan
== 'pengarang'){
$query
= "select pengarang_buku from buku where
pengarang_buku like '$kata%' ";
}
else if($pilihan
== 'penerbit'){
$query
= "SELECT distinct penerbit.nama_penerbit FROM buku
,penerbit
where buku.id_penerbit_buku = penerbit.id_penerbit
and penerbit.nama_penerbit LIKE '$kata%' ";
}
else if($pilihan
== 'kategori'){
$query
= "SELECT distinct kategori.nama_kategori FROM buku,
kategori where buku.id_kategori_buku = kategori.id_kategori
and kategori.nama_kategori LIKE '$kata%' ";
}
$res=mysql_query($query) or die(mysql_error());
while($k=mysql_fetch_array($res) ){
echo '
}
?>
|
6.
Buatlah file baru dengan nama searchQry.php yang akan
menampilkan hasil pencarian
$kata
= $_POST['kata'];
$pilihan
= $_POST['pilihan'];
if ((isset($kata)) and
(!empty($kata))){
echo "
";
echo "
Penelusuran
Hasil pencarian berdasar
$pilihan
";
echo "
|
echo "
";
echo "";
echo "
";
echo "
No
No
Judul Buku
Pengarang
Penerbit
Kategori
Kode Rak
";
echo "
";
$query
= mysql_query("SELECT * FROM buku
LEFT JOIN penerbit ON buku.id_penerbit_buku =
penerbit.id_penerbit
LEFT JOIN kategori ON buku.id_kategori_buku =
kategori.id_kategori
WHERE buku.judul_buku LIKE '$kata%'
OR buku.pengarang_buku LIKE '$kata%'
OR penerbit.nama_penerbit LIKE '$kata%'
OR kategori.nama_kategori LIKE '$kata%'");
$i=0;
while($data=mysql_fetch_array($query)){
$i++;
echo"
".$i."
".$data['judul_buku']."
".$data['pengarang_buku']."
".$data['nama_penerbit']."
".$data['nama_kategori']."
".$data['kd_rak_buku']."
}
echo "
";
echo "
";
}
?>
7.
Agar lebih menarik, berikan style dengan code CSS berikut ini
*{
margin:0;
padding:0;
}
table{
border-collapse:collapse;
width:auto;
}
th{
border:1px
solid #686868;
padding:2px
2px 2px 5px;
background:#F0F0F0;
}
td{
border:1px
solid #686868;
padding:2px
2px 2px 5px;
}
#result{
margin-top:30px;
margin-left:100px;
}
#top{
width:100%;
height:30px;
background:black;
}
#undertop{
width:100%;
height:70px;
background:#F0F0F0;
border-bottom:1px
solid #E0E0E0;
}
#logo{
padding:5px
100px 0 50px;
width:200px;
height:65px;
float:left;
}
#form_cari{
padding:23px
0 0 100px;
}
#pilihan{
border:1px
solid #D8D8D8;
padding:5px
5px 5px 5px;
}
#kata{
width:400px;
height:30px;
border:1px
solid #D8D8D8;
padding:0
0 0 5px;
}
#list{
padding-bottom:5px;
}
#cari{
width:40px;
height:30px;
border:1px
solid #808080;
border-radius:5px;
background:#0066FF;
color:white;
}
#freespace{
height:40px;
border-bottom:1px
solid #E0E0E0;
color:#FF0033;
text-align:left;
padding-top:20px;
padding-left:50px;
}
#left{
float:left;
font:18px
"Arial";
}
#right{
font:14px
"Arial";
color:#808080;
margin-left:300px;
margin-top:4px;
}
|
8. Hasil Akhir
mantap ni andai aja dulu ane kul ngambil komputer ckckck. salam kenal gan
BalasHapus