Hizmetlerimiz
       Web Tasarım
       Grafik Tasarım
       Ürünlerimiz
       Seo Uygulamaları
       Hosting Hizmetleri
       Domain Hizmetleri
       Referanslarımız
        Müşteri Alanı
      Müşteri Kayıt
      Müşteri Paneli Giriş
      Ödeme Bildirimi
      Ticket
        Haberler

Tüm Haberler >>   

        Son Projeler
        Son Konular
    ASP arama motoru yapmak  

Günümüzde neredeyse tüm web siteleri içerik olarak veritabanina dayanan bir tasarimla hazirlaniyor. Bunun içIn ASP ve PHP dilleri kullaniliyor. ASP ile hazirlanan tasarimlarda da agirlikli olarak MS Access veritabani dosyalari kullaniliyor.

Hazirlamis oldugunuz web sitesi böyle bir siteyse, site içine bir arama motoru hazirlayabilirsiniz. Böylece, ziyaretçileriniz veritabaninda bulunan kayitlarda, istedikleri bir veya birkaç sözcüge göre arama yapip, bulunan kayitlari listeleyebilir ve istedikleri kaydi seçerek ekranda görüntüleyebilirler. Bu yazimizda ayrintili olarak bir site içi arama motoru tasarimini anlatacagiz. ASP bilginizin oldugunu varsayarak ayrintili bilgi verilmeyecektir.

Öncelikle veritabani dosyamizi hazirlayalim; MS Access ile yeni bir dosya olusturun, adi "kayitlar.mdb" olsun, bu veritabani dosyasinin içinde "icerik" adinda bir tablo bulunsun, tablomuzdaki alanlar ise,

<b>ID : Otomatik sayi (Birincil Anahtar)
baslik : String (255 karakter)
metin : Not</b>

eklinde olsun. Bu veritabaninda ID, kayitlarimizin kimlik numarasini tutacak ve otomatik sayi olacak, "baslik" alaninda, ilgili bölümün basligi olacak, "metin" alaninda ise ilgili sayfanin içerigine ait kodlar bulunacak. Arama motorumuz bu tablonun "metin" alanini kullanacak.

Kodlarimizda SQL dilinin "Like" komutu ve VBScript' In "Replace" komutu anahtar olarak görev yapacak.

Veritabanina ait kayitlarin görüntülendigi sayfalarin hazir oldugunu varsayarak, "arama.asp" adinda bir sayfa hazirlayacagiz, bundan önce, "arama.inc" adinda bir kod dizisi yazacagiz ve bu kod dizisini "#include file" metoduyla, arama motorunun kullanilmasini istedigimiz sayfamiza dahil edecegiz.

"arama.inc" Kodlari

<b><form name="arama" action="arama.asp" method="Get">
<table border="1" cellpadding="3" cellspacing="0" width="120">
<tr><th colspan="2">Site Içi Arama</th></tr>
<tr><td align="right">Aranacak Sözcük :</td><td>
<Input Type="Text" size="20" name="aranan"></td></tr>
<tr><td> </td><td><Input Type="submit" value="Gönder"></td></tr>
</table>
</form></b>

Bu kodlar bize asagidaki görüntüyü saglayacaktir, ve metin kutusuna yazilan metin (örnegin Deneme), Gönder dügmesine tiklandiginda "arama.asp" sayfamiza "arama.asp?aranan=Deneme" seklinde gönderilecektir.

Simdi arama.asp sayfamizin kodlarini hazirlayalim;

"arama.asp" Kodlari "_" isareti satirin devam ettigini göstermektedir.

<b><% aranan = Request.QueryString("aranan") %>
<html>
<head>
<meta http-equiv="content-Type" content="Text/html; charset=ISO-8859-9">
<meta http-equiv="content-Type" content="Text/html; charset=windows-1254">
<title>Arama Sayfasi : "<% =aranan %>" Sözcügü Arama Sonuçlari</title>
</head>
<body>
<h4>Sonuçlar</h4>
<%If Request.QueryString("aranan") = "" Then

Response.Write "<h5>Aranacak sözcügü girin</h5>"
Response.Write "
<a href=""javascript:window.history.back()""><h6>Geri</h6></a>"
Response.End

Else

aranan = Request.QueryString("aranan")End If %>
<% veritabani = Server.MapPath("databases/kayitlar.mdb")
baglantim = "DRIVER={Microsoft Access Driver (.mdb)}; DBQ="_ & veritabani
Set baglanti = Server.CreateObject("ADODB.Connection")baglanti.Open baglantim
Set kayitlar = Server.CreateObject("ADODB.RecordSet")
aramasql = "Select FROM icerik WHERE metin Like '%" & aranan & "%'_ ORDER BY id ASC"
kayitlar.Open aramasql, baglanti, 1, 3
If kayitlar.RecordCount =< 0 Then
Response.Write "<h4>Site içeriginde uygun kayit bulunamadi...</h4>"
Response.Write "<h5>Aranan Sözcük : " & aranan & "</h5>"
Response.Write "
<a href=""javascript:window.history.back()""><h6>Geri</h6></a>"
Response.End
End If
%>
<%
kayitlar.PageSize = 20
SayfaSayisi = kayitlar.PageCount
Kayitlar.AbsolutePage = sayfano
%>
<table width="740" border="0" cellpadding="0 cellspacing="0" align="left">
<tr><td valign="top" width="150">
Bulunan kayit: <b>
<% =kayitlar.RecordCount %></b>

<%
If kayitlar.RecordCount > 20 Then %>

Her sayfada <font color="#ff0000"><% =kayitlar.PageSize %></font>_
sonuç görüntülenmektedir.

<% End If %>


</td>
<td valign="top" width="590">
<%
' Buradaki fonksiyon, aranan sözcügü kirmizi renkte görüntüleyecek
' sekilde degistirmektedir.

Function degistir(karakter)
duzelt = karakter
duzelt = Replace(duzelt, aranan, "<font style='color:#ff3333'><b>_
" & aranan & "</b></font>")
degistir = duzelt
End Function
%>
<table border="0" cellpadding="5" cellspacing="0" width="500">
<tr><td width="360" valign="top"><b>Metin</b></td></tr>
<%
For i = 1 To kayitlar.PageSize
If kayitlar.EOF Then Exit For
%>
<tr><td valign="top"><% =degistir(kayitlar("metin")) %></td></tr>
<%
kayitlar.MoveNextNext
%>
</table>
</td></tr>
<tr><td> </td><td>
<%
' asagidaki kodlar, bulunan kayitlar bir sayfadan fazla ise, diger
' sayfalara link olusturmaktadir.
<%
If SayfaSayisi <> 1 Then
%>


Diger Sayfalar :
<%
For i = 1 To SayfaSayisiIf i <> SayfaNo Then
%>
<b>[<a href="arama.asp?sa=<% =i %>&aranan=<% =aranan %>"> <% =i %> </a>]</b>
<% Else %>
<b>[ <% =i %> ]</b><%End IfNextEnd If%></td></tr></table>
</td></tr>
</table>



<%
kayitlar.Close
Set kayitlar = Nothing
baglanti.Close
Set baglanti = Nothing
' temizlik yapalim, olusturdugumuz sunucu nesnelerini kapatalim ki
' sunucumuz yorulmasin.
%>
</body>
</html></b>

Bu kisa kodlar ile sayfanizda kayitlari alt alta görüntüleyebilirsiniz. Kisa metinler içeren kayitlar içIn uygun olan bu tasarimda, uzun metinler içeren kayitlarin oldugu sayfalarin görüntülenmesi hos olmayacaktir, bu durumda asagidaki satirlari, altindakilerle degistirerek kayitlariniz içIn linkler olusturabilir ve normalde kayitlarinizi görüntülemek içIn kullandiginiz sayfaya kayitla ilgili baglanti verebilirsiniz.

Görüntüleme sayfanizin kodlarini da yazin, dosya adi "goster.asp" olsun.

<b><tr><td valign="top"><% =degistir(kayitlar("metin")) %></td></tr>
<a href="goruntule.asp?id=<% =kayitlar("id") %>"><% =kayitlar("baslik")_ %></a></b>



Okunma : 296
 
 

 
 
 
Bugün Tekil : 2
Toplam Tekil : 3651
Toplam Çoğul : 27414
İp No : 38.107.191.111

Display Pagerank

 

ENSOFTdizayn.NET
2009-2010 Her Hakkı Saklıdır

KareOfis | Rulet Sohbet | Dizi Seti