Du får döpa din rullist till kon, och sedan ändra till:
kon = Request.Form("kon")
sokning = Request.Form("sokning")
SQL = "SELECT * FROM users WHERE (Username LIKE '%" & sokning & "%' OR namn LIKE '%" & sokning & "%') AND kon = '" & kon & "'"
40 svar · 282 visningar · startad av crisse6
tjabba!
jag har gjort en väldigt enkel sökmotor för att söka igenom en databas. jag har några fält i tabellen users som finns i databasen som heter namn, efternamn, kon, osv.... om jag nu vill via formuläret som man söker i ska kunna välja om man vill hitta bara tjejer eller bara killar...så kan man ju lägga till en rullgardinsmeny i formuläret men hur blir det i asp-koden? så här ser den ut för tillfället:
<font face="Verdana" size="1"><b>Här visas dina träffar:</b><br><br></font><font face="Verdana" size="1">
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
%>
<%
sokning = Request.Form("sokning")
SQL = "SELECT * FROM users WHERE Username LIKE '%" & sokning & "%' OR namn LIKE '%" & sokning & "%' OR kon LIKE '%" & sokning & "%'"
Set rsBra = databas.execute(SQL)
Do Until rsBra.EOF
Response.Write "Förnamn: " & "<b>" & rsBra("Namn") & "<br>" & "</b>"
Response.Write "Efternamn: " & rsBra("Efternamn") & "<br>"
Response.Write "Emejl: " & rsBra("E-post") & "<br>"
Response.Write "Bor: " & rsBra("Bor") & "<br>"
Response.Write "Kön: " & rsBra("Kon") & "<br>"
Response.Write "Född: " & rsBra("Born") & "<br>"
Response.Write "Så här beskriver jag mig själv:" & "<br>" & rsBra("Fakta") & "<br>"
Response.Write "Nickname: " & rsBra("Username") & "<br>" & "<a href=""blikompis.asp?Username=" & rsBra("Username") & """>Bli polare!</a><br><br>"
Response.Write "<img src=""hr.jpg"" width=""846"" height=""11"" border=""0"">" & "<br>"
rsBra.MoveNext
Loop
%>
Du får döpa din rullist till kon, och sedan ändra till:
kon = Request.Form("kon")
sokning = Request.Form("sokning")
SQL = "SELECT * FROM users WHERE (Username LIKE '%" & sokning & "%' OR namn LIKE '%" & sokning & "%') AND kon = '" & kon & "'"
tackar Vide!
nu surfar det bara med min sökfunktion bara en liten fråga, om man inte hittar någon person som man sökt på, kan man inte få ett litet meddelande om det då? borde väl gå med en liten If-sats
If rsBra.EOF Then
Response.Write "Tomt"
Else
Loooop
End If
Vide testade din och den funkar bra om man väljer en kategori, men om man inte väljer en kategori i select satsen kommer detta fel upp,
Syntax error (missing operator) in query expression '(beskrivning LIKE 'm%' OR titel LIKE 'm%') AND kat='.
vad kan det bero på tror du.?
att du inte skickar med något värde för kön... gör en ifsats som kolla om du skicka med något, är det medskickat så lägger du till >> AND kon = '" & kon & "' << annars så skiter du i det...
Kan du visa med lite mer kod tror du, jag fattade inte riktigt det där.
kon = Request.Form("kon")
sokning = Request.Form("sokning")
SQL = "SELECT * FROM users WHERE (Username LIKE '%" & sokning & "%' OR namn LIKE '%" & sokning & "%')"
If kon <> "" then SQL = SQL & " AND kon = '" & kon & "'"
Får upp fel, Data type mismatch in criteria expression. vad är det för fel då.?
på vilken rad?
Så här ser koden ut:
kon = Request.Form("kon")
sokning = Request.Form("sokning")
SQL = "SELECT * FROM users WHERE (Username LIKE '%" & sokning & "%' OR namn LIKE '%" & sokning & "%')"
If kon <> "" then SQL = SQL & " AND kon = '" & kon & "'"
Set RS = databas.execute(SQL)
då ligger felet på,
Set RS = databas.execute(SQL)
okej, skriv ut SQL-strängen före du exekverar den, så är det lättare att se vad som är fel:
If kon <> "" then SQL = SQL & " AND kon = '" & kon & "'"
Response.write SQL
Set RS = databas.execute(SQL)
Nu står det,
SELECT * FROM databas WHERE (beskrivning LIKE '%test%' OR titel LIKE '%test%') AND kat = '1'
ADODB.Recordset.1 error '80004005'
Data type mismatch in criteria expression.
det säger mig inte så mycket.?
okej, är fältet kat ett textfält? annars så skall du ta bort enkelfnuttarna...
Kat är en select sats, koden ser nu så här,
SQL = "SELECT * FROM databas WHERE (beskrivning LIKE '%" & sokning & "%' OR titel LIKE '%" & sokning & "%') AND kat = " & kat & ""
får upp fel,
Syntax error (missing operator) in query expression '(beskrivning LIKE '%test%' OR titel LIKE '%test%') AND kat ='.
hur får du kat till en selectsats?
Har du ändrat:
kon = Request.Form("kon")
till
kat = Request.Form("kat")
??
Japp det har jag, använder
kat = Request.QueryString("kat")
Och hur ser formuläret ut? namnet på kat, och värdenna...
Så här,
<form action="default.asp">
<input type="text" name="sokning">
<select name="kat">
<option>Sök
<option value="1">Val 1
<option value="2">Val 2
</select><br>
<input type="submit" value="Sök">