Şimdi Ara

Mantık Sorunu ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
9
Cevap
0
Favori
570
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba,

    uygulamamda firmalara ait kategori bilgilerini database de tutuyorum..

    firmaid kategoriler
    1 2,9,17,6
    2 4,15,8,9
    3 2,10,11,5

    şimdiki sorunum, kategoriye göre arama yaptırmak isteyince çıktı. mesela 1 numaralı kategori aratıldıgına o kategoriye ait firmaları listelemek istiyorum..

    Where kategoriler LIKE '%1%'

    sql cümlem bu.. ancak 10,11,15,17 gibi kategorilere dahil olan firmalarda listeleniyor.. Sebebi içinde 1 geçmesi..

    Bu sorunu nasıl çözebilirim, şimdiden teşekkür ederim..



  • "1," veya ",1," seklinde yapinca olurmu?
  • ilki mantıklıydı ama ondada sorun oluşuyo..

    "1," diye aratınca bu sefer 21,41,91, olanları listeleyecek
  • Sanırım tüm kategorileri şu şekilde yapsam olur bide onu deneyim..

    -1-,-23-,-45-,
  • Dabatabse in O Field ini "," ile Split edip db icin bir dongu olu$turacaksin, ardindan bu dongunun icinde kategori id si tutanlarin firmaid lerini bir array in veya string in icine herhangi bi ayrac ile ekliyeceksin, elde ettigin array veya string senin arama kriterinin sonucu olacak:

    Orn(ASP):
     
    Dim myArray()
    Dim strResult
    While Not RecordSet.Eof
    myArray = Split(RecordSet("kategori"),",")
    for i=1 to UBound(myArray)
    if myArray(i) = "1" then 'Kategori arama Kriterin..
    strResult = strResult & myArray(i) & ","
    end if
    next
    Wend
    Response.Write strResult ' I$te Kategoriyi Iceren Firma..
  • Pardon belirtmeyi unutmuşum, o işlemi yapıyorum zaten ancak bu sefer db den gelen sql e göre yaptıgım sayfalamada sorun çıkıyor.. kayıt sayısı aslında 5 ken, 25 taneymiş gibi görünüyor ve 1 den fazla sayfa oluşuyor bu sefer..



    < Bu mesaj bu kişi tarafından değiştirildi serserfan -- 3 Eylül 2008; 17:18:54 >
  • Bu mantık basit, ancak yukarda dediğim gibi database de bulacagı veriye göre sayfalama yaptırıyorum..

    Belki bunun sonucunda bulunan firma sayısınada göre yaptırabilirim ancak ugraşmak yersiz.. Buldugum mantık daha iyi ve iş görüyor. Yinede teşekkürler..
  • kardeşim önce bu kategorilerin alan tipini number (yada sql server da ne ise ) yapacaksın.
    sonra bu kullandığın tabloya insert leri tek tek yapacaksın. Yani her firma için bi kategori kaydın olacak Örneğin:

    firmaid kategoriler
    1 2
    1 9
    1 1
    2 4
    2 15
    3 11
    3 12
    3 5
    3 1
    gibi bir yapılanman olacak.

    ondan sonra where koşuluna kategoriler=1 deyince sana kategori numarası 1 olan kayıtları getirecek.

    select firmaadi from tabloadi where kategoriler=1;
    sonuc:
    1
    3


    Hade Kolay Gelsin.



    < Bu mesaj bu kişi tarafından değiştirildi mc92001 -- 12 Eylül 2008; 15:45:03 >
  • 1 yerien 01 yazarsan bu sorun düzelicektir.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.