Metode Searching PHP


Sudah menjadi hal yang wajar rasanya jika pada sebuah situs atau web terdapat fasilitas pencarian (search). Fasilitas search ini sangat berguna untuk mencari informasi yang terdapat dalam situs terkait. Layaknya sebuah perusahaan raksasa Google dengan Search Engine yang super canggih, kita akan mencoba membuat sebuah metode pencarian sederhana menggunakan PHP dan MySQL. Metode yang dipakai adalah multiple keyword, yaitu sebuah metode pencarian yang dapat digunakan untuk mencari banyak kata.

1. Database

Hal pertama yang harus dipersiapkan adalah membuat database. Isi dari database inilah yang nantinya dijadikan acuan untuk metode pencarian. Sebagai contoh disini saya akan membuat database dengan nama “search_db”
CREATE TABLE `article` (
`id` int(3) auto_increment PRIMARY KEY,
`judul_artikel` varchar(100),
`penulis_artikel` varchar(70),
`isi_artikel` text
);
Jika table sudah dibuat, sekarang kita akan mengisi field-field yang ada,
INSERT INTO `article` VALUES (1, ‘Search Engine’, ‘Hadyan’, ‘search engine adalah suatu portal website yang menyediakan informasi pencarian data-data yang dibutuhkan pengunjung internet. Untuk mendapatkan informasi-informasi yang dibutuhkan, pengunjung internet masuk ke situs tersebut dan melakukan pencarian. Website search engine yang terkenal adalah Google dan Yahoo.’);
INSERT INTO `article` VALUES (2, ‘Metode Searching’, ‘Taris’, ‘Cara kerja search engine pertama-tama mencopy paste semua halaman website yang ada di dunia. Setelah data tersebut masuk kemudian diolah dengan algoritmanya sendiri. Saat pengunjung mencari data yang dibutuhkan, dengan algoritmanya dia menampilkan data sesuai yang  dimasukkan pengunjung.\r\n\r\nSearch Engine akan berusaha mungkin menampilkan data yang paling relevan dengan yang diinginkan pengunjung. Berbagai kemungkinan data yang akan ditampilkan, dan search engine punya banyak pertimbangan yang dituangkan dalam algoritmanya’);
INSERT INTO `article` VALUES (3, ‘SEO’, ‘Akbar’, ‘SEO adalah kependekan dari search engine optimization, suatu teknik agar website yang kita buat mudah ditemukan melalui search engine seperti Google.’);

2. Form & Function

Selanjutnya, setelah pembuatan database selesai, sekarang kita akan membuat Form sederhana untuk fungsi pencarian. kita namakan file ini sebagai “index.php”
<?php
include “config.php”;
$mode = $_REQUEST['mode'] ;
$id = $_REQUEST['id'];
$search = trim($_POST['search']);
$search_array = explode(” “,$search);
$banyak_kata = (integer)count($search_array);
$searchquery = “select * from article where ” ;
for ( $x = 0; $x<= $banyak_kata; $x++) {
$searchquery .= “isi_artikel like ‘%$search_array[$x]%’”;
if ( $x <  $banyak_kata ) {
$searchquery .= ” AND “;
}
}
$runsearchquery = mysql_query($searchquery);
$viewquery = “select * from article where id = ‘$id’”;
$runviewquery = mysql_query($viewquery);
if ($mode == “search” ) {
$numrows = mysql_num_rows($runsearchquery);
print “Kata yang Anda cari adalah : “;
for ( $x = 0; $x<= $banyak_kata; $x++) {
$search_replace[$x] = “<b><FONT style=’BACKGROUND-COLOR:yellow’>$search_array[$x]</b></FONT>”;
print “$search_replace[$x] “;
}
print “<br>Kata yang Anda cari tedapat dalam <b>$numrows</b> buah Database<hr>” ;
while ( $result = mysql_fetch_array($runsearchquery)) {
$id = $result['id'];
$judul = $result['judul_artikel'] ;
$isi = $result['isi_artikel'];
$isi_baru = str_replace($search_array, $search_replace, $isi);
$isi_display = substr($isi_baru, 0, 800);
$isi_display = substr($isi_baru, 0, strrpos($isi_display, ” “));
print “<a href=?mode=view&id=$id>$judul</a><br>$isi_display … <br><br>”;
}
print “<hr><a href=index.php>Kembali</a>”;
}
else if($mode == “view”) {
while ( $result = mysql_fetch_array($runviewquery))
{
$id = $result['id'];
$judul = $result['judul_artikel'] ;
$penulis = $result['penulis_artikel'];
$isi = $result['isi_artikel'];
print “<b><u>$judul</u></b><br>Penulis : $penulis<br>$isi”;
}
print “<hr><a href=index.php>Kembali</a>”;
}
else {
?>
<html>
<head>
<title>Search Database … </title></head>
<body>
<br>
<table border=1 align=center bgcolor=lightgreen>
<form method=POST action=?mode=search>
<tr><td><input type=text name=search> <input type=submit name=submit value=Search></td></tr>
</form>
</body>
</html>
<?php
}
?>

3. Config

Untuk menghubungkan file PHP dengan database MySQL kita akan membuat file “config.php”
<?php
$host = “localhost”;
$username = “root”;
$password = “”;
$databasename = “search_db”;
$connect = mysql_connect($host, $username, $password) or die (“Nggak bisa konek !”);
mysql_select_db($databasename, $connect) or die(“Nggak bisa konek !”);
?>

4. Result


5. Query Review

Baiklah sekarang semuanya sudah selesai dan hasilnya bisa dilihat seperti gambar di atas. Untuk memahami sedikit dari coding di atas mari kita review beberapa syntax berikut:
  • select * from article where isi_artikel like ‘%$search%’ –> seleksi database
  • select * from article where isi_artikel like ‘%$keyword1%’ AND ‘%$keyword2%’ AND ’%$keyword3%’ –> looping untuk memisahkan keyword
  • $banyak_kata = (integer)count($search_array); –> menghitung kata
  • $isi_baru = str_replace($search_array, $search_replace, $isi); –> bold and light

Comments

Post a Comment

Popular Posts