---
title: "Söka i databas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/68238-söka-i-databas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "AboO"
published: "2003-02-14T07:54:09.000Z"
updated: "2003-02-18T08:42:03.000Z"
replies: 24
views: 460
page: 1
pages: 2
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/68238-söka-i-databas"
---

# Söka i databas

_Sida 1 av 2._

## #1 — AboO, 2003-02-14T07:54Z

Jag skulle vilja ha en funktion som söker i en Access databas, i ett speciellt tabellfält.

Men jag har inte en aning om hur man gör det  :l 

har kollat efter något liknande skript, men har inte hittat nåt.

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

## #2 — Fredde Mannen, 2003-02-14T08:02Z

```
"SELECT * from tabellnamn WHERE column LIKE '%$sok_ord'"
```

Sen om du kan i övrigt koda smått i asp så är det inga problems!!!

Men annars:

```
Dim Connect, DSNtemp
Set Connect = Server.CreateObject("ADODB.Connection")
DSNtemp = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=/sökväg/till/databasen från rooten/"
Connect.Open(DSNtemp)

Dim sok_ord, Rs, SQL
sok_ord = Request.Form("sok_ord")

Set Rs = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * from tabellnamn WHERE column LIKE '%" & sok_ord & "'"
Rs.Open SQL, Connect

If Rs.Eof Then
Response.Write "<strong>" & sok_ord & "</strong> kunde inte hittas!"
Else
Do While Rs.Eof

Response.Write("" & Rs("column") & "<br />")

Rs.MoveNext
Loop

End If

Rs.Close
Set Rs = Nothing

Connect.Close
Set Connect = Nothing
```

Sen kan man ju givetvis bygga ut denna och göra den mycket mera avancerad, detta var bara ett hafsift exempel. :e

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

## #3 — AboO, 2003-02-14T08:32Z

Sen gör man bara ett vanlig formulärfält som heter sok_ord som har den där koden som action?

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

## #4 — OveRRidE, 2003-02-14T08:51Z

> **Fredde skrev:**
>
> SQL = "SELECT \* from tabellnamn WHERE column LIKE '%" & sok_ord & "'"

Nja, det där innebär att sökordet *slutar* på det som användaren söker på. Borde vara tvärt som eller kanske på båda sidor.

Enkel

```
SQL = "SELECT * from tabellnamn WHERE column LIKE '" & sok_ord & "%'"
```

Dubbel

```
SQL = "SELECT * from tabellnamn WHERE column LIKE '%" & sok_ord & "%'"
```

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

## #5 — OveRRidE, 2003-02-14T08:52Z

> **AboO skrev:**
>
> Sen gör man bara ett vanlig formulärfält som heter sok_ord som har den där koden som action?

Typ, så ja.

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

## #6 — AboO, 2003-02-14T08:58Z

```
<form method="POST" action="search.asp" name="sok_ord">
  <p><input type="text" name="sok_ord" size="20"><input type="submit" value="Sök" name="submit"><input type="reset" value="Sudda" name="reset"></p>
</form>
```

så gjorde jag.
då när jag testar att söka, så blir det bara en blank sida.
och search.asp innehåller den koden som Fredde skrev först, fast jag ändrade till dubbel.

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

## #7 — OveRRidE, 2003-02-14T09:05Z

Fredde har ett smärre fel i sin kod, som gjorde att ingenting visades. 

```
Dim Connect, DSNtemp
Set Connect = Server.CreateObject("ADODB.Connection")
DSNtemp = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=/sökväg/till/databasen från rooten/"
Connect.Open(DSNtemp)

Dim sok_ord, Rs, SQL
sok_ord = Request.Form("sok_ord")

Set Rs = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * from tabellnamn WHERE column LIKE '%" & sok_ord & "'"
Rs.Open SQL, Connect

If Rs.Eof Then
Response.Write "<strong>" & sok_ord & "</strong> kunde inte hittas!"
Else
[b]Do until Rs.Eof[/b]

Response.Write("" & Rs("column") & "<br />")

Rs.MoveNext
Loop

End If

Rs.Close
Set Rs = Nothing

Connect.Close
Set Connect = Nothing
```

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

## #8 — AboO, 2003-02-14T09:14Z

Ah, nu funkar det.

Om du kollar på: <http://user.domaindlx.com/aboox/db/index.htm>

Sen testar att söka. 
Jag skulle vilja att sökresultaten länkas till inläggen, så man kan klicka på namnet och läsa vad personen skrev. Ska man länka till ID:et då eller hur ska man göra?

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

## #9 — OveRRidE, 2003-02-14T09:24Z

```
Response.Write "<a href=""visningsSida.asp?id=" & Rs("ID") & """><%=rs("column")%></a>"
```

RED. Det ovanstående är givetvis fel. :o :r

Rätt lösning ser ut såhär:

```
Response.Write "<a href=""visningsSida.asp?id=" & Rs("ID") & """>" & rs("column") & "</a>"
```

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

## #10 — AboO, 2003-02-14T09:38Z

Expected end of statement 

/aboox/db/search.asp, line 20 

Response.Write "\<a href=""list.asp?id=" & Rs("ID") & """\>\<%=rs("namn")

Nu får jag det inte att funka :\|

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

## #11 — OveRRidE, 2003-02-14T09:41Z

RED. Det är ju jag som är puckad. Ursäkta min klumpighet. Såhär skall det vara:

```
Response.Write "<a href=""list.asp?id=" & Rs("ID") & """>" & rs("namn") & "</a>"
```

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

## #12 — AboO, 2003-02-14T09:45Z

Det funkade bättre :)

fast nu blir det bara en blank sida istället..  igen

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

## #13 — OveRRidE, 2003-02-14T09:48Z

Då har du ändrat något i din kod, för när jag försökte så fick jag inte träffar på någonting, oavsett sökord.

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

## #14 — AboO, 2003-02-14T09:49Z

testa med Magnus.
för det söker på namn i databasen, och Magnus är det enda namnet än så länge. :)

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

## #15 — OveRRidE, 2003-02-14T09:52Z

Testade med 'g' och det borde garanterat ge en träff, vilket det inte gör. 

Kasta upp hela koden igen. :)

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

## #16 — AboO, 2003-02-14T09:53Z

```
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("idelada.mdb") 

Dim sok_ord, Rs, SQL
sok_ord = Request.Form("sok_ord")

Set Rs = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * from results WHERE namn LIKE '%" & sok_ord & "%'"

Rs.Open SQL, Connect

If Rs.Eof Then
Response.Write "<strong>" & sok_ord & "</strong> kunde inte hittas!"
Else
Do While Rs.Eof

Response.Write("" & Rs("Namn") & "<br />")
Response.Write "<a href=""list.asp?id=" & Rs("ID") & """>" & rs("namn") & "</a>"

Rs.MoveNext
Loop

End If

Rs.Close
Set Rs = Nothing

Connect.Close
Set Connect = Nothing
%>
```

There you go.
Nu såg jag att det var while istället för until.
hur det nu kunde ändra på sig igen :)

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

## #17 — AboO, 2003-02-14T09:54Z

kan föresten lägga till att list.asp är sidan där inläggen hämtas från databasen.

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

## #18 — OveRRidE, 2003-02-14T09:58Z

Du bytte ju ut det jag rättade till ett par inlägg ovan. :D

Detta..

```
Do While Rs.Eof
```

..skall vara detta:

```
Do Until Rs.Eof
```

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

## #19 — AboO, 2003-02-14T10:01Z

Jo, jag märkte det :)

Tack så jättemycket.
nu tror jag allt är lugnt.

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

## #20 — Fredde Mannen, 2003-02-16T15:02Z

ett misstag sker så lätt!!! :e  

Vad fint att det funkar nu dig!!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/68238-söka-i-databas  
Nästa sida: https://www.webforum.nu/amne/asp/68238-söka-i-databas/page2.md
