webForumDet fria alternativet

Storre typ av sokfunktion....

ASP

17 svar · 373 visningar · startad av crisse6

Medlem sedan dec. 20002 526 inlägg
Frågan#1

Hej!

Forsoker fa ihop en storre typ av sokfunktion, liknande den har pa wF... Iaf, har bl a radiobuttons som kan ha olika varden... Blir ju ett jakla jobb och troligen en del if-satser om man ska behova kolla varje vad den innehaller for att fa fram, vet ju inte direkt vad anvandaren kompar ihop... hehe! Sa har ser det ut nu...

<%
strText = request.form("text")

strUsername = request.form("usrname")

'strMatchUser ar radiobuttons och kan
'innehalla matcha hela namnet eller en del av det
strMatchUser = request.form("userSpec")

strForum = request.form("forum")

'strMatchForum ar ocksa radiobutton och kan
'innehalla sok pa rubrik eller bara fran inlagget
strMatchForum = request.form("forumSpec")

strOrderDatum = request.form("datum")
strOrderFrom = request.form("order")

'strOrderList ar radiobuttons som valjer ASC
'eller DESC i sortering
strOrderList = request.form("sortBy")

strListHits = 	"select * from t_threads where f_text LIKE '%"&strText&"%' AND"&_
		" f_by LIKE '%"&strUsername&"%' AND forumID = "&strForum&""
set rs = objConn.execute(strListHits)

If rs.eof then
	response.write "Inga träffar"
else

Do Until rs.eof

	response.write rs("f_text")&"&&nbsp;"&rs("f_by")&"&&nbsp;"&rs("forumID")&""
rs.Movenext
Loop
End IF
%>

Hanger ni med?

Medlem sedan feb. 200112 078 inlägg
#2

Hanger ni med?

Givetvis. §e

Vad vill du ha hjälp med?

Medlem sedan dec. 20002 526 inlägg
#3

Ha! :e

Okey, ska vi kora lista pa det i numerisk ordning? :)
1. Jag har formular med radiobuttons, textfalt, selectbox.
2. Sidan som tar emot data ska da i sql:en "sortera" ut vad man valde i formularet. Problemet ar te x, sag att anvandaren valde detta:

Upload i ASP-forumet av cri, (dvs matcher en del av namnet), och valde att soka igenom inlagg (inte rubrik alltsa)... hur far man ihop det?
anvandaren kan ju mixtra lite hur som helst...

Medlem sedan jan. 20022 440 inlägg
#4

Det bästa vore nog att i princip göra massvis med sql frågor och bara köra den där precis de kriterierna finns för sql frågan. Blir mycket kod men det lär ju snabba upp sökningarna en hel del och dessutom inte suga så mycket systemresurser såvida inte dina puckobesökare väljer att söka lite av varje :)

Medlem sedan dec. 20002 526 inlägg
#5

Men vill INTE gora sa, vill hitta en smartare satt....

Medlem sedan jan. 20022 440 inlägg
#6

Lycka till :P

Medlem sedan feb. 200112 078 inlägg
#7

CatZ skrev:

Det bästa vore nog att i princip göra massvis med sql frågor och bara köra den där precis de kriterierna finns för sql frågan. Blir mycket kod men det lär ju snabba upp sökningarna en hel del och dessutom inte suga så mycket systemresurser såvida inte dina puckobesökare väljer att söka lite av varje :)

Det bästa är nog att generera SQL-frågan efter vad de olika request-samlingarna innehåller.

Jag har gjort ett sådant script och har även postat det här någonstans på Wf, men jag hittar det inte nu.

Medlem sedan feb. 200112 078 inlägg
#8

Kika här, det kanske hjälper lite.

http://www.webforum.nu/showthread.php?s=&postid=462035#post462035

Medlem sedan dec. 20002 526 inlägg
#9

ska kolla mer imorgon, tackar

Medlem sedan jan. 20022 440 inlägg
#10

Tjusigt :) Visste inte man kunde göra på det viset. Men så har jag bra läst lite SQL här på webforum också :)

Medlem sedan dec. 20002 526 inlägg
#11

okey. ar helt borta nar det galler for...next.... osa..
formularnamnen ar dessa:

strText = request.form("text")

strUsername = request.form("usrname")

'strMatchUser ar radiobuttons och kan
'innehalla matcha hela namnet eller en del av det
strMatchUser = request.form("userSpec")

strForum = request.form("forum")

'strMatchForum ar ocksa radiobutton och kan
'innehalla sok pa rubrik eller bara fran inlagget
strMatchForum = request.form("forumSpec")

strOrderDatum = request.form("datum")
strOrderFrom = request.form("order")

'strOrderList ar radiobuttons som valjer ASC
'eller DESC i sortering
strOrderList = request.form("sortBy")

och hur far jag ihop det med den koden du lankade till Override?

Medlem sedan dec. 20002 526 inlägg
#12

hallu? :)

Medlem sedan feb. 200112 078 inlägg
#13

Ok. Nu kommer hela lösningen till dig crisse. Se det som en engångsföreteelse. :p ;)

sok1.asp (formuläret)

<form method="post" action="sok.asp">

text: <input type="kol_text" name="req_text"><br>
user: <input type="kol_user" name="req_user"><br>
<br>
forum: 
<select name="forum">
	<option value="1">Forum 1
	<option value="2">Forum 2
	<option value="3">Forum 3
</select><br>
sortering: 
<select name="order">
	<option value="ASC">ASC
	<option value="DESC">DESC
</select><br>
<br>

<input type="submit" value=" OK ">
</form>

sok.asp (sokmotorn)

<%
response.buffer = true

SQL = "SELECT * FROM din_tabell WHERE 1=1 "
	
	'strForum = 12
	'strOrderFrom = "DESC"
	
	strForum = request.form("forum") '<<-- vilket forum-ID
	strOrderFrom = request.form("order") '<<-- ASC, DESC (id)
	
	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
		
		if cstr(left(item,4)) = "req_" 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
	
	SQL = SQL & " AND WHERE forumId = " & strForum
	SQL = SQL & " ORDER BY id " & strOrderFrom

	response.write SQL
	
	set rs = conn.execute(SQL)

if rs.eof then
	response.write "Inga träffar"
else

	Do Until rs.eof
		response.write rs("f_text")&"& "&rs("f_by")&"& "&rs("forumID")&"<br>"
	rs.Movenext
	Loop

end if
%>

Varsågod. :)

Medlem sedan feb. 200112 078 inlägg
#14

Ett tillägg! :)

* Om formulär-elementet heter t.ex. 'req_user' så måste fältet som innehåller username heta 'user'. Delen 'req_' sorteras bort automagiskt av scriptet. Detta gäller för fälten 'text' och 'user'.

Medlem sedan dec. 20002 526 inlägg
#15

hmm... tack override, men fick felmess:
Missing Operator!
sql:en ser ut sa har:

SELECT * FROM t_threads WHERE 1=1 AND text = 'hej' AND user = 'crisse6' AND WHERE forumId = '1 ORDER BY id ASC
Medlem sedan feb. 200112 078 inlägg
#16

Givetvis får du det, du har en ' (apostrof) mitt i alltihopa. Den kommer troligtvis från formulär-elementet 'forum'. Kolla det värdet.

Medlem sedan feb. 200112 078 inlägg
#17

Ändra den här raden

SQL = SQL & " AND WHERE forumId = " & strForum

till

SQL = SQL & " AND forumId = " & strForum

.

Medlem sedan dec. 20002 526 inlägg
#18

funkar fin fint!

606 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
473 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)