webForumDet fria alternativet

behöver hjälp med sök...

ASP

24 svar · 499 visningar · startad av cupy

Medlem sedan apr. 2002299 inlägg
Frågan#1

Hej !
Jag försöker bygga en search script med två dropdown menu
men den vill inte funka så tänkte fråga er om ni kan hjälpa till.
Så ser den ut nu:
----------------------------------------------------------------------
<FORM name="land" action ="cq.asp method="post">
<select name="sok">
<font face="verdana, Helvetica" size=2>
<option value="non">-VÄLJ LAND-</option>
<option value="sverige">sverige</option>
<option value="danmark">danmark</option>
<option value="finnland">finnland</option>
o.s.v....
</select>
<select name=kategori value="kategori">
<option value="none" selected> Välj
kategori
<option value="sport">sport</option>
<option value="fysik">fysik</option>
o.s.v....
</select><br>
<input type="submit" value="Sök">
</form>
<% set objConn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM tabell WHERE land LIKE '%" & Request.Form("land") & "%' OR AND kategori LIKE '%" & Request.Form("kategori") & "%' Order by id desc"

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("databas.mdb")
objConn.open strDSN
rs.Open strSQL, objConn, 3, 3 %>
<%
If Rs.EOF Then
Response.Write"Hittade inga uppgifter"
Else
DO UNTIL Rs.EOF
%>
<a href="visa3.asp?id=<%=TRIM(Server.HTMLEncode(Rs("ID"))) %>"><% =TRIM(Server.HTMLEncode(Rs("rubrik")))%></a>
<%=Rs("kategori")%>
<% =TRIM(Server.HTMLEncode(Rs("land")))%>

<% rs.MoveNext
Loop
End if
Rs.CLOSE
Conn.CLOSE
Set Rs = nothing
Set Conn = nothing
%>

Medlem sedan dec. 200012 464 inlägg
#2

En dropdown har namnet sok

<select name="sok">

men i din select-sats så använder du

WHERE land LIKE '%" & Request.Form("land") & "%'

Vad är problemet egentligen?

Medlem sedan apr. 2002299 inlägg
#3

Tack för det Lars men det inte det som är fel
Jag experimenterade och glömde skriva om den.
Felet är att händer inget när jag väljer ett land och/eller ett kategori Inget felmeddelande heller.

Medlem sedan dec. 200012 464 inlägg
#4
strSQL = "SELECT * FROM tabell WHERE land LIKE '%" & Request.Form("land") & "%' [b]OR AND[/B] " & _
"kategori LIKE '%" & Request.Form("kategori") & "%' Order by id desc"

Det feta ser konstigt ut.

Ett sätt är att skriva ut den sql-sats som du får och testa den i Access.

strSQL = "SELECT * FROM tabell WHERE land LIKE '%" & Request.Form("land") & "%' or " & _
"kategori LIKE '%" & Request.Form("kategori") & "%' Order by id desc" 
response.write strSQL
response.end
Medlem sedan apr. 2002299 inlägg
#5

nej! det funkar inte!
Den skriver ut bara hela select satsen.

Medlem sedan dec. 200012 464 inlägg
#6

Jo det var liksom meningen det.

Hur ser sql-satsen ut? Fungerar det att köra den i Access?

Medlem sedan apr. 2002299 inlägg
#7

så ser den ut . Den funkar fortfarande inte och jag får inget felmeddelande heller.

<%
set objConn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM tabell WHERE land LIKE '%" & Request.Form("land") & "%' or " & _
"kategori LIKE '%" & Request.Form("kategori") & "%' Order by id desc"

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("databas.mdb")
objConn.open strDSN
rs.Open strSQL, objConn, 3, 3 %>
<%
If Rs.EOF Then

Response.Write"Det finns inga uppgifter"
Else
DO UNTIL Rs.EOF
%>

Medlem sedan nov. 20017 144 inlägg
#8

Alltså, hur ser den ut när den skrivs ut? Inte koden!!

MVH Jesper

Medlem sedan mars 2002777 inlägg
#9

LarsG menade nog hur din utskrift av SQL-frågan ser ut :)

Medlem sedan apr. 2002299 inlägg
#10

menar ni den:
SELECT * FROM files WHERE kommun LIKE '%%' or kategori LIKE '%%' Order by id desc

Medlem sedan nov. 20017 144 inlägg
#11

Just! Då ser det ut som att inget värde har hamnat mellan %procent% tecknena. :(

Medlem sedan nov. 20017 144 inlägg
#12

Det skulle ju har stått tex danmark och sport, om du sökt på det.

MVH Jesper

Medlem sedan nov. 20017 144 inlägg
#13

Ändra detta!
<FORM name="land" action ="cq.asp method="post">
till
<FORM name="land" action ="cq.asp" method="post">
:)

Medlem sedan apr. 2002299 inlägg
#14

nu listar ut allt, men inte det som jag vill

Medlem sedan nov. 20017 144 inlägg
#15

Men skall det inte stå:

set objConn = Server.CreateObject("ADODB.Connection") 
Set rs = Server.CreateObject("ADODB.RecordSet") 
strSQL = "SELECT * FROM tabell WHERE land LIKE '%" & Request.Form("land") & "%' [b]AND[/b] " & _ 
"kategori LIKE '%" & Request.Form("kategori") & "%' Order by id desc"
Medlem sedan apr. 2002299 inlägg
#16

jo! fast nu är den prioriterar kategoriet mer än landet
alltså om jag väljer ett land och ett kategori då listas ut alla meddlemmar i den kategori men tyverr den listar ut andra länder också.

Medlem sedan nov. 20017 144 inlägg
#17

Jag vet inte om jag är dum, men går det inte bara att skriva:

Kategori = Request("kategori") 
Land = Request("land") 
set objConn = Server.CreateObject("ADODB.Connection") 
Set rs = Server.CreateObject("ADODB.RecordSet") 
strSQL = "SELECT * FROM tabell WHERE land ='"& Land &"' AND 
kategori ='"& Kategori &"' Order by Land, kategori"

LIKE '% Behöver du väl bara om du har ett textfält där man kan skriva ett sökord eller tex "Danm" för Danmark osv. Det verkar ju som att du har bestämda värden i selectboxen ju.

MVH Jesper

Medlem sedan apr. 2002299 inlägg
#18

Det blir samma resultat tyverr

Medlem sedan nov. 20017 144 inlägg
#19

Lade du till: Order by Land, kategori ?

Medlem sedan apr. 2002299 inlägg
#20

Nu funkar det ! Jag glömde ge ett namn i select <select name="land">
Så nu funkar fast nu jag är tvungen att välja ett land Jag kan inte välja ett kategori bara

305 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
168 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
170 ms — ändringar (db)