> ich will eine suchfunktion f�r unsere datenbank machen.
[...]
> vielleicht hat ja jemand schon eine sch�ne funktion .. :)

Heute ist Dein Gl�ckstag.. *g*

Folgender Code kann z.B. sowas interpretieren und eine WHERE-Bedingung
f�r beliebig viele Suchfelder basteln...:

(("Internet Explorer" OR IE) AND NOT Browser) OR Netscape

Claudius

------------->
sql = sql & "select * from table WHERE " & _
        sqlSearch(Request("suche"),Array("titel","text"),"AND")

function sqlSearch(ByVal searchString,fields,defaultOperator)
  dim tokens,i,inString,char,tok,where,wasStr
  searchString = searchString & " "
  tokens = Array()
  inString=false
  tok = ""
  for i = 1 to len(searchString)
    char = mid(searchString,i,1)
    
    select case char
    case """"
      inString = not inString
      if (tok<>"") then tokens=arrayAdd(tokens,tok,not inString) : tok =
""
    case "(",")"
        if not inString then
          if (tok<>"") then tokens=arrayAdd(tokens,tok,false) : tok = ""
          tokens = arrayAdd(tokens,char,false)
        else
          tok = tok & char
        end if
    case else
          if inString or char<>" " then
            tok = tok & char
          else
            if tok<>"" then tokens=arrayAdd(tokens,tok,false) : tok = ""
          end if
    end select
  next
  
  where="" : wasStr = false
  for each tok in tokens
    select case tok
      case "(",")","AND","OR","NOT"
        where = where & " " & tok & " "
        wasStr = false
      case else
        if wasStr then where = where & " " & defaultOperator & " "
        
        where = where & " (" & join(fields," LIKE " & tok & " OR ") & "
LIKE " & tok & ") "
        
        wasStr = true
    end select
  next
  sqlSearch = where
end function


| [aspdecoffeehouse] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp

Antwort per Email an