Jump to content

detaylı arama yapabilecek bir program bir veritabanı


Recommended Posts

herkese selamlar

konuyu dogru yere mi actım bilmiyorum ama yanlıs acmıssam herkesten ozur dilerim...

bana bir program, veritabanı bilmiyorum artık adı neyse lazım (bitirme tezim icin)...

yapacagı islem su:

makaleler yukleyecegim ve mesela "park" kelimesini aratacagım...yalnız sonucları bana "park" kelimesinin gectigi cumleleri sıralayarak verecek, ayrıca "park" kelimesinin ek almıs ya da deyim seklindeki kullanımlarını da ayrıca gösterecek ve tabiki epey bir makaleyi kaldırabilecek...makale takibi isminde bir program buldum ancak program kelimeleri makalede gecen yerlerde gosteriyor yani sıralamıyor,ve tek tek makalelere bakmak gerekiyor, ayrıca 30-40 civarı makaleden sonra program kafayı sıyırdı...tabi bu arada ben de sıyırdım... :pardon: pufff

access'te yapabilirmiyim diye ugrastım ama hicbirsey anlamadım...

yardımcı olabilir misiniz? ne yapmalıyım?

herkese tesekkur ederim

(baslıga ne yazacagımı bilemedim kusura bakmayın)

Link to comment
Share on other sites

ya asp bilgin azıcık varsa ne demek istediğimi anlayacaksın.

default.asp diye bir dosya oluştur.

<form action="?kelime=sorgu" methot="post">

<input type="text" name="kelime">

<input type="submit" value="Aramaya başla !">

<%

'gönderdiğimiz kelime gelmişse;

if request("kelime") = "sorgu" then

'vt bağlantısı yaptık

set wmismail = server.createobject("adodb.connection")

wmismail.open "Provider=Microsoft.Jet.Oledb.4.0, data source=" & server.mappath("db.mdb")

kelime = request("kelime")

'sonra sql sorgusu yapacağız.

set rs = wmismail.execute("select * from TABLOADI where CUMLELER ="&kelime&" ")

'şimdi cümleleri bulacak. Sonra yazdıralım..

%>

<% do while not rs.eof %>

<%=rs("CUMLERLER")%>

<% rs.movenext : loop %>

bu kadar. Hatalarım olabilir. Hızlı yazdım. Zatan mantığını anlatmak için yazdım.

İyi çalışmalar. Sonun olursa yazarsın.

Link to comment
Share on other sites

ya asp bilgin azıcık varsa ne demek istediğimi anlayacaksın.

default.asp diye bir dosya oluştur.

<form action="?kelime=sorgu" methot="post">

<input type="text" name="kelime">

<input type="submit" value="Aramaya başla !">

<%

'gönderdiğimiz kelime gelmişse;

if request("kelime") = "sorgu" then

'vt bağlantısı yaptık

set wmismail = server.createobject("adodb.connection")

wmismail.open "Provider=Microsoft.Jet.Oledb.4.0, data source=" & server.mappath("db.mdb")

kelime = request("kelime")

'sonra sql sorgusu yapacağız.

set rs = wmismail.execute("select * from TABLOADI where CUMLELER ="&kelime&" ")

'şimdi cümleleri bulacak. Sonra yazdıralım..

%>

<% do while not rs.eof %>

<%=rs("CUMLERLER")%>

<% rs.movenext : loop %>

bu kadar. Hatalarım olabilir. Hızlı yazdım. Zatan mantığını anlatmak için yazdım.

İyi çalışmalar. Sonun olursa yazarsın.

usta tesekkur ederim yardımcı olmussun ama sorunda burda iste hic bi bilgim yok :pardon: :pardon: yine de saol

Link to comment
Share on other sites

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=""java script: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=""java script: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>

Link to comment
Share on other sites

forumda chm diye arattır. Bulduğun bir programda yapabilirsin.

Progrtamların hepsi zaten aynı görevi yapıyor.

Bir tanesini indir ve kullanmayı dene. Dönüşütrdüğünde senin için program karşına çıkacak. Arama da yapılabiliyor.

Link to comment
Share on other sites

  • 2 hafta sonra ...

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...