---
title: "Enkel sökfråga"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12261-enkel-sökfråga"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Steveking"
published: "2001-10-24T08:55:00.000Z"
updated: "2001-10-24T09:54:00.000Z"
replies: 4
views: 202
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/12261-enkel-sökfråga"
---

# Enkel sökfråga

## #1 — Steveking, 2001-10-24T08:55Z

Jag har en enkel sökfunktion.
Söksidan ser ut såhär

```

<form name="form1" method="post" action="vin1.asp">
<input type="text" name="sok" size="20">
<select name="select" size="1" class="INPUT">
    <option selected>Maträtter</option>
    <option>Vin</option>
  </select>
<input type="submit" name="Submit" value="Sök" class="INPUT">
</form>
```

Som ni ser så har ja en dropdown meny med 2 val.
Ena valet är Vin och andra valet är Maträtter.

Sidan som jag tar emot sökningen med er ut såhär

```

<%sok = request("sok")
%>
        <%
	set Conn=server.createobject("adodb.connection")
	path="DBQ=" & server.mappath("mat.mdb")
	conn.open "driver={microsoft access driver (*.mdb)}; " & path," ",""
        
         sql="SELECT * FROM vine WHERE vin LIKE '%" & Request.Form("sok")& "%'" 
         set visa = conn.execute(sql)

%>
        
        <%do until visa.eof
'hämta värden
vin=visa("vin")
typ=visa("typ")
%>
         <br>
      
        
          
        <%response.write("<b>" &vin &"</b>")

%>
           
      
        <%response.write(typ &"<br>")

%>
           
     
        <%visa.movenext
loop
	  %>
```

Där är en enkel hämtning av sökningen.

Men vad jag nu vill är att om man väljer maträtter i dropdown menyn så ska den ta 

```
 sql="SELECT * FROM mat WHERE mat LIKE '%" & Request.Form("sok")& "%'" 
         set visa = conn.execute(sql)
```

Och visa maträtterna först och inte vinet.
Sen tvärt om när man väljer vin i dropdown menyn.

Permalänk: https://www.webforum.nu/p/12261

## #2 — LarsG, 2001-10-24T09:04Z

Du får ha två separata loopar.

```
<%
sok = request("sok")
set Conn=server.createobject("adodb.connection")
path="DBQ=" & server.mappath("mat.mdb")
conn.open "driver={microsoft access driver (*.mdb)}; " & path," ",""

if request.form("select") = "Vin" then
sql="SELECT * FROM vine WHERE vin LIKE '%" & Request.Form("sok")& "%'" 
set visa = conn.execute(sql)

do until visa.eof
'hämta värden
vin=visa("vin")
typ=visa("typ")
%>
<br>

<%
response.write("<b>" &vin &"</b>")
response.write(typ &"<br>")
visa.movenext
loop
else
sql="SELECT * FROM mat WHERE mat LIKE '%" & Request.Form("sok")& "%'" 
set visa = conn.execute(sql)
while not visa.eof
'visa mat
visa.movenext
wend
end if
%>
```

Permalänk: https://www.webforum.nu/p/292813

## #3 — Jojo, 2001-10-24T09:06Z

Du måste ha "Value" på dina option-taggar.

```
<select name="select" size="1" class="INPUT">
<option value="mat" selected>Maträtter</option>
<option value="vin">Vin</option>
```

Sedan kollar du bara i ASPn vad användaren valt:

```
<%
Select Case LCase(request.Form("select"))
Case "mat"
     sql = "SELECT * FROM mat WHERE mat LIKE '%" & Request.Form("sok")& "%"
Case "vin"
     sql = "SELECT * FROM vin WHERE vin LIKE '%" & Request.Form("sok")& "%"
Case else
     Response.Write("Felaktig request")
     Response.End
End Select
%>
```

Vill du visa både mat och vin efter varandra kan du söka i flera tabeller:

```
sql = "SELECT * FROM vin,mat WHERE (vin.vinNamn  LIKE '%" & Request.Form("sok")& "%) or (mat.matNamn  LIKE '%" & Request.Form("sok")& "%)"
```

typ..

//Micke

Permalänk: https://www.webforum.nu/p/292814

## #4 — Steveking, 2001-10-24T09:44Z

Tack guys.
såhär gjorde jag

```

<%sok = request("sok")
%>
<%
	set Conn=server.createobject("adodb.connection")
	path="DBQ=" & server.mappath("mat.mdb")
	conn.open "driver={microsoft access driver (*.mdb)}; " & path," ",""
        
if request.form("select") = "Vin" then
sql="SELECT * FROM vine WHERE vin LIKE '%" & Request.Form("sok")& "%'" 
set visa = conn.execute(sql)
  
elseif request.form("select") = "typ" then
sql="SELECT * FROM vine WHERE typ LIKE '%" & Request.Form("sok")& "%'" 
set visa = conn.execute(sql)

end if%>

<%do until visa.eof
'hämta värden
vin=visa("vin")
typ=visa("typ")
%>

      <%response.write("<b>" &vin &"</b>")

%>

      <%response.write(typ &"<br>")

%>
     
  <%visa.movenext
loop
%>
```

Nu är problemet att om den inte hittar något vin etc så blir det bara tomt.

Vad lägger ja till så den tex skriver.
(inga träffar)

Permalänk: https://www.webforum.nu/p/292815

## #5 — LarsG, 2001-10-24T09:54Z

Ungefär så här

```
<%sok = request("sok")
%>
<%
set Conn=server.createobject("adodb.connection")
path="DBQ=" & server.mappath("mat.mdb")
conn.open "driver={microsoft access driver (*.mdb)}; " & path," ",""

if request.form("select") = "Vin" then
sql="SELECT * FROM vine WHERE vin LIKE '%" & Request.Form("sok")& "%'" 

elseif request.form("select") = "typ" then
sql="SELECT * FROM vine WHERE typ LIKE '%" & Request.Form("sok")& "%'" 
else
response.write "Du måste välja ett alternativ <br>"
response.end
end if%>

set visa = conn.execute(sql)
if visa.eof then
response.write "Det fanns inget <br>"
response.end
end if

<%do until visa.eof
```

Permalänk: https://www.webforum.nu/p/292816

---

Tråden på webben: https://www.webforum.nu/amne/asp/12261-enkel-sökfråga
