webForumDet fria alternativet

Mer sökmotor

ASP

15 svar · 278 visningar · startad av Jörgen HP

Medlem sedan feb. 20012 412 inlägg
Frågan#1

Hej!

Råkar också pula vidare med en sökmotor som söker igenom en databas efter olika kriterier. Är det något som sysslat med söksyntax, " ", +, och - ?

Tar gärna emot ideer hur man kan få sådana att funka.

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan juni 20019 519 inlägg
#2

jag kan ju få din kod för sök motor så blir jag glad :) om du vill alltså :) du får Credit för det på sidan :)

------------------
//voigtan
:: voigtan.org

"de går inte att lära en gammal norrläning byta namn på irc" - gammalt kinesiskt uttryck

Medlem sedan feb. 20012 412 inlägg
#3

Hej!

På det sättet lär du dig inte så mycket ASP ;)

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan juni 20019 519 inlägg
#4

jag fattar inte hur man gör en sök motor.. jag har gjort allt annat på sidan förutom Sök motorn så jag kan den ASP jag behöver kunna just nu.. vad begär du från mej? jag e bara 17 år och har fått lära mej allt själv... det finns gränser :)

------------------
//voigtan
:: voigtan.org

"de går inte att lära en gammal norrläning byta namn på irc" - gammalt kinesiskt uttryck

Medlem sedan okt. 2001101 inlägg
#5

Det finns inga gränser för vad du kan lära dig! ;)

Medlem sedan juni 2001223 inlägg
#6

nä... och du, jag är 15 och kämpar på ;)

------------------
all your base are belong to us

Medlem sedan okt. 2001208 inlägg
#7

Sök igenom ASP-forumet efter sökmotor så hittar du säkert nått

------------------
"Where monkeys and nutty proffesors live. That's where i live"

Medlem sedan okt. 2001208 inlägg
#8

jag kan ge dig en liten hint för en bra start på en sökmotor:

Gör en sida för sökmotor formuläret och en annan som tar hand om själva sökningen.

------------------
"Where monkeys and nutty proffesors live. That's where i live"

Medlem sedan mars 20007 896 inlägg
#9

Om vi ska ta och hålla oss till ämnet... ;)

Det lättaste vore om du splittade söksträngen vid varje + och -, och styrde SQL-frågorna med AND och OR.

Om du inte hängde med kommer jag väl tebax i morrn, då jag är lite piggare... Alltså söndag, jag kom hem just.

------------------
SPiN, bjorne.w@telia.com

-- Tekniska framsteg är som en yxa i händerna på en kriminell galning / Albert Einstein --

Medlem sedan juni 20019 519 inlägg
#10

cHeMiCaL-X
Om du e så "grym" :) kan du ju göra det åt mej :) :) det e typ det ända jag behöver nu är sök motor såsom här på wF. sen jag jag färdig med sidan whoho! =) nästan iallfall =)

------------------
//voigtan
:: voigtan.org

"de går inte att lära en gammal norrläning byta namn på irc" - gammalt kinesiskt uttryck

Medlem sedan dec. 19998 577 inlägg
#11

Här kommer en kod som jag skrev för ganska länge sedan, det är ju alltid något att utgå ifrån, men fråga mig bara inte hur den fungerar, det får ni lista ut själva... ;)

[kod]'** Skapar SQL-strängarnas Where-satser utifrån vad som stoppas in. **'
Function getSQLPartofMatch( tmp_strString, strFields, strPtrn,  bolNOT, rplce )

	Set objRegExp = New RegExp
	objRegExp.IgnoreCase = True
	objRegExp.Global = True
	
	arrFields = Split( strFields, ", " )
	
	strOperator = "AND"

	objRegExp.Pattern = strPtrn
	Set myMatch = objRegExp.execute(tmp_strString)
	
	For each item in myMatch
		objRegExp.Pattern = strPtrn
		strTmpString = objRegExp.Replace( item, "$1" )
		
		If rplce Then
			tmp_strString = Replace( tmp_strString, item, "" )
		End If
		
		tmp_strSQL = tmp_strSQL & " ( "
		
		For i = 0 To Ubound( arrFields )
			If i < Ubound( arrFields ) Then
				strInternalOperator = "OR"
			Else
				strInternalOperator = ""
			End If
			
			If bolNOT Then
				strStartOp = " NOT"
				strEndOp = " "
				If strInternalOperator = "OR" Then strInternalOperator = "AND"
			Else
				strStartOp = ""
				strEndOp = ""
			End If
			tmp_strSQL = tmp_strSQL & " ( " & arrFields( i ) & strStartOp & " LIKE '%" & strTmpString & "%' " & strEndOp & " ) " & strInternalOperator
		Next
		
		tmp_strSQL = tmp_strSQL & " ) " & strOperator
	Next
	
	getSQLPartofMatch = tmp_strSQL
	
End Function

Function getSQLofSearchParser( strString, strFields )
	arrPtrns = Array( "\+{1}""(.*?[^""])""", _
		"\+{1}[""]{0}(\S+)([""]){0}", _
		"-{1}""(.*?[^""])""", _
		"-{1}[""]{0}(\S+)([""]){0}", _
		"[""]{0}(\S+)([""]){0}" )
	
	For i = 0 To Ubound( arrPtrns )
		If i = 4 Then
			rplce = false
		Else
			rplce = true
		End If
		
		If i = 2 OR i = 3 Then
			bolNOT = true
		Else
			bolNOT = false
		End If
		
		strPtrn = arrPtrns( i )
		
		tmp_strSQL = tmp_strSQL & getSQLPartofMatch( strString, strFields, strPtrn, bolNOT, rplce )
	Next
	
	If tmp_strSQL <> "" Then
		getSQLofSearchParser =  " WHERE " & strStartSQL & Left( tmp_strSQL, Len( tmp_strSQL ) - 3 )
	End If
End Function

------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu

Medlem sedan dec. 19998 577 inlägg
#12

Kan tillägga att du anropar hela patrasket med:

getSQLofSearchParser( strString, strFields )

Där strString är din söksträng och strFields är de fält du vill ha med ( kommaseparerat ).

Det du får ut är en where-sats som du hakar på din ordninarie SQL-sats...

Exempel:

strSQL = "select * from tblTable " & getSQLofSearchParser( "+sök -hicka", "namn, adress, icq" )

Mvh, Vide

------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu

[Redigerat av Vide den 04 nov 2001]

Medlem sedan feb. 20012 412 inlägg
#13

Tack, spin, vide. Eftersom inte min chilliASP inte fixar reg exp får det bli split-varianten.

Ska labba vidare på den ideen :)

Mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan juni 20019 519 inlägg
#14

var den koden för mej vide eller?

------------------
//voigtan
:: voigtan.org

"de går inte att lära en gammal norrläning byta namn på irc" - gammalt kinesiskt uttryck

Medlem sedan okt. 2001208 inlägg
#15

Gör ett formulär ( sok.asp ) som sedan skickar formulär datan till svar.asp som med hjälp av Request.form("formulärfältnamn")

det gör du genom det gör du genom att ha request.form i sql-satsen exempel:

SQL = "SELECT * From "&Request.Form("section")&" Where tabell like '%"& Request.Form("formulärfältnamn")&"%'"

------------------
"Where monkeys and nutty proffesors live. That's where i live"

Medlem sedan dec. 19998 577 inlägg
#16

var den koden för mej vide eller?

Den var till alla som var intresserade av att bygga en sökmotor... :)

Om man inte skall söka med +, -, +"" o.s.v utan bara på ordet man skriver så fungerar cHeMiCaL-X version bra...

------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu

274 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)