webForumDet fria alternativet

Sökmotor

ASP

2 svar · 408 visningar · startad av Thomasa

Medlem sedan aug. 2002351 inlägg
Frågan#1

Jag har sökt och sökt här på webbforum men kan inte säga att jag hittade precis vad jag sökte även om många svar var nära :)

så jag gör ett försök:

Jag vill kunna skicka en söksträng till en sida med en sqlsats som dels kan sköta kommandon som OR, AND och även begränsa till en tidsperiod som man väljer i en droplist (1vecka, 1 månad, 1år, alla datum)

som det är nu så ser SQL-satsen ut såhär:

SELECT * FROM page WHERE Pagetext like '%" & search & "%' OR Pageheadline like '%" & search & "%'

någon som har en sån här funktion färdig eller liknande att bjuda på?, eller nån som skriver en på 1,5 min :)?

Medlem sedan feb. 200112 078 inlägg
#2

Nåt sånt här kanske?

SQL = "SELECT * FROM produkter WHERE 1=1 "
	
	for each item in request.form
		strValue = trim(request.form(item))
		strValue = replace(strValue,"'","''")
		strValue = replace(strValue,"*","%")
		if instr(strValue,"%") > 0 then
			strLogOp = "LIKE"
		else
			strLogOp = "="
		end if
		
		'SQL = SQL & "AND "
		
		if cstr(left(item,4)) = "get_" AND len(request.form(item)) > 0 then
			SQL = SQL & "AND "
			'generera kolumnnamnet
			SQL = SQL & right(item,len(item)-4)
			'generera värdet
			SQL = SQL & " " & strLogOp & " '" & strValue & "' "
		end if
	next

Om det ser helt mörkt ut, kan jag förklara följande:

  • Alla formular som skall inkluderas i sökningen måste heta get_formularnamn, där formularnamn är vad form-elementet heter.
  • Forumlarnamnet måste vara samma som kolumnen som skall sökas i. Skall du t.ex. inkludera kolumnen user i din sökning, måste det formularelementet heta get_user.
  • * (stjärna) är wildcard, och konverteras till % under körningen.

Hoppas det är till någon hjälp. :)

Medlem sedan aug. 2002351 inlägg
#3

jag ska testa det men det ser ju lysande ut, tackar :)

131 ms totalt · 2 externa anrop · v20260731065814-full.2ae45ccc
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)