Jo
Add = "SELECT * FROM users WHERE 1=1 "
if request.querystring("username") <> "" then
add = add & "and username like '%" & _
replace(request.querystring("username"),"'","''") & "%'"
end if
'nästa villkor
'sortering
6 svar · 241 visningar · startad av Wiklund!!
Har gjort en sökfunktion till mitt community. Man anger kön, land, status och hur man ska sortera posterna (efter användarnamn, kön osv) samt i stigande eller fallande form för att få fram de användare man vill.
Det vart lite väl mkt kod när jag skulle få fram sql satsen. Här är en liten bit av koden för att öppna sql satsen:
If Request.QueryString("country") = "" and Request.QueryString("gender") <> "" and Request.QueryString("status") <> "" and Request.QueryString("sport") <> "" Then
Add = "SELECT * FROM users WHERE username Like '%" & Request.QueryString("username") & "%' and gender = '"& Request.QueryString("gender") &"' and status = '"& Request.QueryString("status") &"' and interesstedin = '"& Request.QueryString("sport") &"' ORDER by "& Request.QueryString("order") &" "& Request.QueryString("desc") &", username ASC"
RecSet.Open Add, Connect, adOpenStatic, adLockOptimistic
ElseIf Request.QueryString("country") <> "" and Request.QueryString("gender") = "" and Request.QueryString("status") <> "" and Request.QueryString("sport") <> "" Then
Add = "SELECT * FROM users WHERE username Like '%" & Request.QueryString("username") & "%' and country = '"& Request.QueryString("coutry") &"' and status = '"& Request.QueryString("status") &"' and interesstedin = '"& Request.QueryString("sport") &"' ORDER by "& Request.QueryString("order") &" "& Request.QueryString("desc") &", username ASC"
RecSet.Open Add, Connect, adOpenStatic, adLockOptimistic
ElseIf Request.QueryString("country") <> "" and Request.QueryString("gender") <> "" and Request.QueryString("status") = "" and Request.QueryString("sport") <> "" Then
Add = "SELECT * FROM users WHERE username Like '%" & Request.QueryString("username") & "%' and country = '"& Request.QueryString("country") &"' and gender = '"& Request.QueryString("gender") &"' and interesstedin = '"& Request.QueryString("sport") &"' ORDER by "& Request.QueryString("order") &" "& Request.QueryString("desc") &", username ASC"
RecSet.Open Add, Connect, adOpenStatic, adLockOptimistic
ElseIf Request.QueryString("country") <> "" and Request.QueryString("gender") <> "" and Request.QueryString("status") <> "" and Request.QueryString("sport") = "" Then
Add = "SELECT * FROM users WHERE username Like '%" & Request.QueryString("username") & "%' and country = '"& Request.QueryString("country") &"' and gender = '"& Request.QueryString("gender") &"' and status = '"& Request.QueryString("status") &"' ORDER by "& Request.QueryString("order") &" "& Request.QueryString("desc") &", username ASC"
RecSet.Open Add, Connect, adOpenStatic, adLockOptimistic
ElseIf Request.QueryString("country") = "" and Request.QueryString("gender") = "" and Request.QueryString("status") <> "" and Request.QueryString("sport") <> "" Then
Add = "SELECT * FROM users WHERE username Like '%" & Request.QueryString("username") & "%' and status = '"& Request.QueryString("status") &"' and interesstedin = '"& Request.QueryString("sport") &"' ORDER by "& Request.QueryString("order") &" "& Request.QueryString("desc") &", username ASC"
RecSet.Open Add, Connect, adOpenStatic, adLockOptimistic
Min fråga är om det finns något enklare sätt att få fram sql satsen?
Jo
Add = "SELECT * FROM users WHERE 1=1 "
if request.querystring("username") <> "" then
add = add & "and username like '%" & _
replace(request.querystring("username"),"'","''") & "%'"
end if
'nästa villkor
'sortering
Vet inte riktigt hur man ska sätta in de andra villkoren. Får inte till det. Har gjort så här men det blir ju inte rätt:
Add = "SELECT * FROM users WHERE 1=1 "
if request.querystring("username") <> "" then
add = add & "and username like '%" & _
replace(request.querystring("username"),"'","''") & "%'"
end if
if request.querystring("country") <> "" then
add = add & "and country =" & _
request.querystring("country") &""
end if
if request.querystring("gender") <> "" then
add = add & "and gender =" & _
request.querystring("gender") &""
end if
'sortering
RecSet.Open Add, Connect, adOpenStatic, adLockOptimistic
Det saknas lite apostrofer
Add = "SELECT * FROM users WHERE 1=1 "
if request.querystring("username") <> "" then
add = add & "and username like '%" & _
replace(request.querystring("username"),"'","''") & "%'"
end if
if request.querystring("country") <> "" then
add = add & "and country ='" & _
request.querystring("country") &"'"
end if
if request.querystring("gender") <> "" then
add = add & "and gender ='" & _
request.querystring("gender") &"'"
end if
'sortering
RecSet.Open Add, Connect, adOpenStatic, adLockOptimistic
Vad får du för fel?
Så nu har jag fått till det mesta. Bara ORDER BY delen som inte fungerar. Testade att göra så här:
add = add & "ORDER by '"& Request.QueryString("order") &"'"
add = add & "'"& Request.QueryString("desc") &"'"
add = add & ",username ASC"
Får inget felmeddelande, bara det att posterna sorteras efter användarnamnet även fast man valt att de ska sorteras efter åldern.
Måste lära mig lite mer om sql satser tror jag!
Du ska inte ha apostrofer runt fältnamn och sorteringsordning.
add = add & "ORDER by "& Request.QueryString("order")
add = add & " "& Request.QueryString("desc")
add = add & ", username ASC"
mvh
Tack LarsG och @nders fungerar bra nu. Känndes lite onödigt med 150 raders koden jag hade gjort tidigare, visste att det fanns något enklare sätt!