Arama Formlarına Anahtar Kelime Önerileri Ekleme
Başta Google olmak üzere birçok web sitesinde arama yapmak istediğinizde, yazdınız şeylerle ilgili sizlere öneriler sunulduğunu görmüşsünüzdür. Bu yazıda bu tür arama formlarını nasıl oluşturabileceğimizi anlatmaya çalışacağım.Bu işlemleri yapabilmek için PHP, MySQL ve AJAX kullanacağız. AJAX’ın çalışma mantığını anlamak için şu adreste eburhan’ ın yazdığı makaleyi okumanızı tavsiye ederim.
Artık arama formunu içeren sayfamızı oluşturmanın vakti geldi.
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title>Arama Formlarına Anahtar Kelime Önerileri Ekleme - ERsin HAN</title> <script language="javascript" src="eyceks.js"></script> <script type="text/javascript"> function oneriler(){ var gelen = document.ara.aranan.value; var gelen = fc_(gelen); var sc = 'ara='+ gelen; JXP(1, "sonuclar", "oneriler.php", sc); e=document.getElementById('sonuclar'); e.style.display="block"; } </script> </head> <body> <form name="ara" method="post" action="ara.php"> <input type="text" name="aranan" onkeyup="oneriler()"> <!-- Fonksiyonumuzu çağırıyoruz. --> <input type="submit" value="Ara"> </form> <div id='sonuclar'></div> <!-- Fonksiyondan gelen kelimelerin gösterileceği alan. --> </body> </html>
Sayfamızı oluşturduktan sonra formun anlık okunacağı oneriler.php sayfasını oluşturmadan önce anahtar kelimeler içeren tablomuzu veritabanında oluşturuyoruz.
CREATE TABLE `a_kelime` ( `id` int(5) NOT NULL AUTO_INCREMENT, `icerik_id` int(4) NOT NULL, `a_kelime` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=36 ; -- -- Tablo döküm verisi `a_kelime` -- INSERT INTO `a_kelime` VALUES (1, 1, 'elma'); INSERT INTO `a_kelime` VALUES (2, 2, 'armut'); INSERT INTO `a_kelime` VALUES (3, 2, 'kiraz'); INSERT INTO `a_kelime` VALUES (4, 2, 'karpuz'); INSERT INTO `a_kelime` VALUES (5, 2, 'ayva');
Veritabanında anahtar kelime tablomuzu oluşturduktan sonra sıra geldi PHP sayfamıza.
oneriler.php
<?php $db_host = "localhost"; // Genelde localhost $db_kullanici = "root"; // Veritabanı kullanıcı adınız $db_sifre = "******"; // Veritabanı şifreniz $db_adi = "deneme"; // Veritabanı adınız mysql_connect($db_host, $db_kullanici, $db_sifre); mysql_select_db($db_adi, $baglanti); if(mysql_errno()) { echo 'Veritabanına bağlanılamıyor ...'; exit; } $ara=strip_tags($aranan); // Gelen değişkeni temizliyoruz. $sorgu=mysql_query ("SELECT DISTINCT a_kelime FROM a_kelime WHERE a_kelime LIKE '".$aranan."%'"); if($say=mysql_num_rows($sorgu)>0) { if (strlen($aranan)>0) { echo "<ul>"; while($dizi=mysql_fetch_array($sorgu)) { $ekle=$dizi[a_kelime]; echo "<li><a href='ara.php?aranan=$ekle'><small>$dizi[a_kelime]</small></a></li>"; } echo "</ul>"; } } ?>
Temel olarak yapılan işlemler bu kadar. CSS ile önerileren kelimeleri arama formunun altına getirebilirsiniz. Uygulamayı geliştirdikten sonra, yaptığınız örnekleri ve adreslerini yorum olarak gönderebilirsiniz.
Uygulamayı indirmek için:




