webForumDet fria alternativet

välj sökning

ASP

40 svar · 208 visningar · startad av crisse6

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

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
%>
Medlem sedan dec. 19998 577 inlägg
#2

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 & "'"

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

[Redigerat av Vide den 19 feb 2001]

Medlem sedan dec. 20002 526 inlägg
#3

tackar Vide! :e

nu surfar det bara med min sökfunktion :e 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 :q

Medlem sedan okt. 20001 558 inlägg
#4
If rsBra.EOF Then
Response.Write "Tomt"
Else
Loooop
End If

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

Medlem sedan juli 2000355 inlägg
#5

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.?

Medlem sedan dec. 19998 577 inlägg
#6

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...

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

Medlem sedan juli 2000355 inlägg
#7

Kan du visa med lite mer kod tror du, jag fattade inte riktigt det där.

Medlem sedan dec. 19998 577 inlägg
#8
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 & "'"

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

Medlem sedan juli 2000355 inlägg
#9

Får upp fel, Data type mismatch in criteria expression. vad är det för fel då.?

Medlem sedan dec. 19998 577 inlägg
#10

på vilken rad?

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

Medlem sedan juli 2000355 inlägg
#11

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)

Medlem sedan dec. 19998 577 inlägg
#12

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 har du sjungit på sista refrängen
Jourhavande Vide

Medlem sedan juli 2000355 inlägg
#13

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.?

Medlem sedan dec. 19998 577 inlägg
#14

okej, är fältet kat ett textfält? annars så skall du ta bort enkelfnuttarna...

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

Medlem sedan juli 2000355 inlägg
#15

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 ='.

Medlem sedan dec. 19998 577 inlägg
#16

hur får du kat till en selectsats? :)

Har du ändrat:

kon = Request.Form("kon")

till

kat = Request.Form("kat")

??

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

Medlem sedan juli 2000355 inlägg
#17

Japp det har jag, använder
kat = Request.QueryString("kat")

Medlem sedan dec. 19998 577 inlägg
#18

Och hur ser formuläret ut? namnet på kat, och värdenna...

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

Medlem sedan juli 2000355 inlägg
#19

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">

Medlem sedan dec. 19998 577 inlägg
#20

Vilken datatyp har du på fältet kat?

Ändra
<option>Sök

till
<option value="">Sök

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

258 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)