• 03-03-2009, 00:34:28
    #10
    Kimlik doğrulama veya yönetimden onay bekliyor.
    veritabanın access olması lazım, access türkçe karakleri ayırt edemez.ç ve c farklı algılar.En kesin sonuç için tüm olasılıklara göre karakterleri replace edip her biri için ayrı sorgu yaptırman gerekir bu da pek güzel olmaz arana kelimeye göre çok fazla sorgu oluşmasına neden olabilir.
    Bunu yerine şöyle bişey yapablirsin.
    Veritabanındaki tabloya bir alan daha oluştur.Bu alana anahtar kelimelerin replace edilmiş hallerini yazdır.Arama yaparken bu alanda arama yaptır , sayfa yazdırıkende normal yazılışlarının olduğu alanı kullan.Şöyle bişey yani
       AnahtarKelimeler               |      ReplaceEdilmis
       ---------------------------------------------------------
       Kılıç, Mılıç, Araba, Otobüs   |      Kilic, Milic, Araba , Otobus
    Arama sorgun şöyle olacak
    www.xyz.com/index.asp?aranacak=kilic
    aranacak=Request.QueryString("aranacak")
    SQL="Select * from Tablo where ReplaceEdilmis like '%"&aranacak&"%'
    Anahtar kelimeleri yazdırınkende AnahtarKelimeler alanını kullanılacak
    Bunlarla uğraşmayayım diyorsan SQL veritabanı kullan bu sorunları yaşamazsın.
  • 03-03-2009, 20:58:48
    #11
    Üyeliği durduruldu
    tmmz,

    Verdiğin cevap için çok teşekkür ediyorum. Gayet mantıklı bi yöntem açıkçası. İlk fırsatta bu şekilde deneyeceğim. Yalnız bu replaceedilmis kısmında arama yaparken virgüllerden nasıl ayıracağım konusunda zihnimde bir şey oluşmadı. Şu şekilde bir tablo yapım var. Buna göre uyarlamakta sorun çıkar mı?
  • 04-03-2009, 17:18:40
    #12
    ReplaceEdilmis alanını sadece arama için kullan ,arama işlemi sırasında ayırmana gerek yok.
    Arama sonucu boş değilse etiketler alanındakileri ayırıp yazdıcaksın.Ayırma işlemini splitle virgüle göre yapablirsin.Kısaca şöyle olacak kodların.
    aranacak=Request.QueryString("aranacak")
    Set Rs=Server.CreateObject("Adodb.Recordset")
    SQL="Select * from icerik where ReplaceEdilmis like '%"&aranacak&"%'"
    Rs.Open SQL,baglanti,1,3
    While Not Rs.Eof
         dizi=Split(Rs("etiketler"),",")
         for i=0 to Ubound(dizi) 
            Response.Write("<a href=""www.xyz.com/index.asp?aranacak="&TurkceKarakterTemizle(dizi(i))&""">"&dizi(i)&"</a> ")
         Next
         Response.Write("<br>")
         Rs.MoveNext
    Wend
    Function TurkceKarakterTemizle(k)
    	k=Replace(k,"ş","s")
    	k=Replace(k,"Ş","s")
    	k=Replace(k,"ğ","g")
    	k=Replace(k,"Ğ","g")
    	k=Replace(k,"İ","i")
    	k=Replace(k,"ı","i")
    	k=Replace(k,"ç","c")
    	k=Replace(k,"Ç","c")
    	k=Replace(k,"ö","o")
    	k=Replace(k,"Ö","o")
    	k=Replace(k,"ü","u")
    	k=Replace(k,"Ü","u")
    	TurkceKarakterTemizle=k
    End Function
    Kodları denemedim ama kabaca bu şekilde olması lazım.
  • 04-03-2009, 18:05:08
    #13
    Üyeliği durduruldu
    Çok teşekkür ederim tekrar tmmz.