---
title: "Sökmotor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/136816-sökmotor"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "WebbisNet"
published: "2005-11-01T21:38:49.000Z"
updated: "2005-11-03T14:12:56.000Z"
replies: 13
views: 420
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/136816-sökmotor"
---

# Sökmotor

## #1 — WebbisNet, 2005-11-01T21:38Z

Jag ska för första gången ge mig på att bygga en sökmotor, min kod är just nu i enklaste laget och jag behöver bara lite hjälp att rätta koden så jag kommer igång. Ett annat av problemen förutom att få ut resultaten till en annan frame i det frameset jag använder är hur jag enbart får en av varje ort i listan och inte flera av samma i selectboxen

```
<%imageLink="Http://images.webbisen.com"%>
<!-- #include virtual="/include/dbconn.asp" -->
<!-- #include virtual="/include/functions.asp" -->
<!-- #include virtual="/include/variabler.asp" -->

<%Set search=objConn.Execute("SELECT DISTINCT * FROM tblUsers order by City ASC")%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>
<form name="form1" method="post" action="/search/index.asp?do=search">
  <select name="selCity">
  <%DO UNTIL search.EOF%>
  <option value="<%=search("city")%>"><%=search("city")%></option>
  <%search.MoveNext: Loop%>
  <input type="submit" value="Sök">
  </select>
</form>

<%If Request.Querystring("do") = "search" Then%>
<!-- #include virtual="/include/dbconn.asp" -->
<!-- #include virtual="/include/functions.asp" -->
<%
	SET objConn = connect()
	varCity = Request.Form("selCity")
	sRS=objConn.Execute("SELECT * FROM tblUsers WHERE city='"& varCity &"'")
	Response.Redirect "/search/results.asp?city="& sRS("city")
	
End If%>
</body>
</html>
```

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

## #2 — emission, 2005-11-01T21:44Z

För att få resultatet i en annan frame så sätter du helt enkelt target="framenamnet" i form-taggen.

För att endast få unika städer måste sökningen vara

```
SELECT DISTINCT City FROM tblUsers order by City ASC
```

Sök inte ut mer kolumner än du tänkt använda. SELECT \* bör undvikas.

Denna kod:

```
sRS=objConn.Execute("SELECT * FROM tblUsers WHERE city='"& varCity &"'")
Response.Redirect "/search/results.asp?city="& sRS("city")
```

Bör ersättas med

```
Response.Redirect "/search/results.asp?city="& server.urlencode(varCity)
```

Sökningen är onödig och värdet bör URL-encodas, eftersom det kan innehålla tecken som inte får finnas i en länk.

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

## #3 — WebbisNet, 2005-11-01T21:51Z

tack så mycket för tipsen, sidan ska utökas med frisök, sökning på ålder, län, kön, online och mer sedan och då kommer sql-satesen att bli mer omfattande

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

## #4 — emission, 2005-11-01T21:54Z

Gött.

Själva SQL-sökningen bör dock ligga i results.asp (ha den som action i formuläret, så slipper du omvägar)

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

## #5 — WebbisNet, 2005-11-01T21:54Z

I min SQL sats \[\<%Set search=objConn.Execute("SELECT DISTINCT City FROM tblUsers order by City ASC")%\>\] får jag detta felemeddelande på sidan

Microsoft JET Database Engine (0x80040E57)
Fältet är för litet för de data du vill infoga. Försök att infoga eller klistra in mindre information.
/search/searchbox.asp, line 6

Rad 6 är SQL-satsen ovan

och target i form öppnar bara sidan i \_top vilket inte var vad jag önskade, vill ha den i ramen searchFrame

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

## #6 — emission, 2005-11-01T22:05Z

Vad är det för datatyp på City? Den får inte tillåta mer än 256 tecken

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

## #7 — WebbisNet, 2005-11-01T22:29Z

> **emission skrev:**
>
> Vad är det för datatyp på City? Den får inte tillåta mer än 256 tecken

Det är text

Jag ändrade action till results.asp och när jag söker på en stad så får jag fram flera resultat och alla visar samma person

```
<%
Set results=objConn.Execute("SELECT userID, username, City, Sex FROM tblUsers WHERE city= '"& request.form("selCity") &"' order by userID ASC")
varUsername = results("username")
varCity = results("city")
%>

Du sökte på <b><%=request.form("selCity")%></b> och fick dessa resultat:<br>
<table>
<tr>
<td>
Användarnamn
</td>
<td>
Ålder
</td>
<td>
Kön
</td>
<td>
Stad
</td>
</tr>
<tr>
<%DO UNTIL results.EOF%>
<td>
<%=varUsername%>
</td>
<td>
&nbsp;
</td>
<td>
&nbsp;
</td>
<td>
<%=varCity%>
</td>
</tr>
<%results.MoveNext: Loop%>
</table>
```

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

## #8 — emission, 2005-11-02T09:11Z

Inte så konstigt, eftersom du bara hämtar ut första raden till variablerna varUsername och varCity, och skriver ut dem i loopen. Hämta data från recordsetet i loopen.

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

## #9 — WebbisNet, 2005-11-02T12:23Z

e för trött för att tänka, ska jag inte använda variablerna i loopen?

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

## #10 — J.N., 2005-11-02T12:28Z

HEJ!

Sov istället då, sedan ser garanterat felet när du vaknat! :e

Jag gissar att du blandar två saker, nämligen att stoppa in recordsetet i en array och utskrift av ett recordset.

Gör en av sakerna.

Nu skriver du ut första värdet i recordsetet (via variablerna), men loopar sedan igenom recordsetet. Därför får du recordsetslängden styck av samma poster.

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

## #11 — emission, 2005-11-02T18:42Z

> **WebbisNet skrev:**
>
> e för trött för att tänka, ska jag inte använda variablerna i loopen?

Du får gärna använda variabler, men som du skrivit nu så hämtar du dem endast en gång, så då får du ju samma värde hela tiden....

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

## #12 — WebbisNet, 2005-11-03T01:50Z

jag måste vara trög men hur ska jag skriva då :-)

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

## #13 — emission, 2005-11-03T08:55Z

Nu är du allt bra vimsig ;) Det här har du gjort massor med gånger förut.

```
<%
Set results=objConn.Execute("SELECT userID, username, City, Sex FROM tblUsers WHERE city= '"& request.form("selCity") &"' order by userID ASC")

%>

Du sökte på <b><%=request.form("selCity")%></b> och fick dessa resultat:<br>
<table>
<tr>
<td>
Användarnamn
</td>
<td>
Ålder
</td>
<td>
Kön
</td>
<td>
Stad
</td>
</tr>
<tr>
<%DO UNTIL results.EOF%>
<td>
<%=results("username")%>
</td>
<td>
&nbsp;
</td>
<td>
&nbsp;
</td>
<td>
<%=results("city")%>
</td>
</tr>
<%results.MoveNext: Loop%>
</table>
```

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

## #14 — WebbisNet, 2005-11-03T14:12Z

håller med att jag är vimsig ibland :-) , tack för hjälpen

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/136816-sökmotor
