---
title: "Söka på fler fält i databasen"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/132883-söka-på-fler-fält-i-databasen"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Meng"
published: "2005-08-17T09:56:55.000Z"
updated: "2005-08-17T16:46:51.000Z"
replies: 23
views: 625
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/databaser-sql/132883-söka-på-fler-fält-i-databasen"
---

# Söka på fler fält i databasen

_Sida 1 av 2._

## #1 — Meng, 2005-08-17T09:56Z

Hur gör jag om jag istället för att bara söka på Palle1 i databasen alltid söker på Palle 1, 2, 3, 4, 5, 6 ?

```
SQL = "Select * From varelager Where Palle1 Like '%" & Request.Querystring("sokord") & "%' "
```

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

## #2 — @nders, 2005-08-17T09:59Z

Lägg til villkoren för fälten med OR i WHERE-satsen.
Lägg gärna en parentes runt hela Palle-blocket också, för att undvika problem med konstiga resultat om du har fler villkor i WHERE-delen.

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

## #3 — LarsG, 2005-08-17T10:42Z

Designa inte en tabell på det sättet.  Istället för att ha flera kolumner så använder man en extra tabell där man lagrar flera rader.

Flyttas från ASP

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

## #4 — Meng, 2005-08-17T10:57Z

Det vet jag LarsG men i detta fallet var det bästa sättet och sen skal de användas just 6 på varje post. Provar ditt förslag @nders.

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

## #5 — Meng, 2005-08-17T11:05Z

Får de inte riktigt till att funka, säkert nåt fnutt fel.. eller?

```
SQL = "Select * From " & Tabbe & " Where[B](palle1 OR palle2 OR palle3 OR palle4 OR palle5 OR palle6)[/B] Like '%" & Request.Querystring("sokord") & "%' AND sletdato is null AND slutdato is null Order By " & Request.Querystring("falt") & " " & Request.Querystring("form") & ""
```

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

## #6 — @nders, 2005-08-17T11:07Z

Du måste lägga till varje fält som ett eget villkor. Det finns inga genvägar.

```
Where (palle1 Like '%" & Request.Querystring("sokord") & "%' or palle2 Like '%" & Request.Querystring("sokord") & "%')
```

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

## #7 — Glitter, 2005-08-17T11:08Z

/red försent @nders hann före

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

## #8 — @nders, 2005-08-17T11:10Z

Sen kan man ju tycka det är mysigt att lagra sökordet i en variabel istället, och glöm inte heller bort skydd mot sql injection.

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

## #9 — OveRRidE, 2005-08-17T11:23Z

/red. Redan gjort. ;)

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

## #10 — Meng, 2005-08-17T12:25Z

Vad är det nu för generalfel jag gör?

```
Microsoft OLE DB Provider for ODBC Drivers error '80040e10' 
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. 

/overskudslager/ol_bruger_reservere.asp, line 744
```

```
SQL = "Select * From varelager Where 
(palle1 Like '%" & Request.Querystring("sokord") & "%' or 
palle2 Like '%" & Request.Querystring("sokord") & "%' or 
palle3 Like '%" & Request.Querystring("sokord") & "%' or 
palle4 Like '%" & Request.Querystring("sokord") & "%' or 
palle5 Like '%" & Request.Querystring("sokord") & "%' or 
palle6 Like '%" & Request.Querystring("sokord") & "%') 
AND sletdato is null AND slutdato is null Order By " & 
Request.Querystring("falt") & " " & Request.Querystring("form") & ""
```

744:

```
RecSet.Open SQL, Conn
```

Vad är **sql injection** ?

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

## #11 — @nders, 2005-08-17T12:33Z

> Vad är det nu för generalfel jag gör?

Till att börja med, skriv ALLTID ut den FÄRDIGA SQL-frågan. Vi kan inte gissa oss till vad dina variabler innehåller.

Felmeddelandet brukar betyda att du angett ett felaktigt tabell- eller fältnamn.

SQL Injection: gör en liten sökning här på wF och återkom med följdfrågor.

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

## #12 — Meng, 2005-08-17T12:36Z

Förlåt, här kommer den färdiga

```
Select * From varelager Where (palle1 Like '%a%' or palle2 Like '%a%' or palle3 Like '%a%' or palle4 Like '%a%' or palle5 Like '%a%' or palle6 Like '%a%') AND sletdato is null AND slutdato is null Order By lokation ASC
```

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

## #13 — @nders, 2005-08-17T12:38Z

Då får du kolla att alla tabell- och fältnamn är rättstavade.

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

## #14 — Meng, 2005-08-17T13:15Z

Fick løst det nu, försökte sortera efter ett felstavat fält..

En annan fråga.. hur använder jag detta i en If-sats?

```
<%If RecSet("palle1") Like '%" & Request.Querystring(sokord) & "%' Then%>
<%=RecSet("palle1")%>
<%ElseIf RecSet("palle1") Like '%" & Request.Querystring(sokord) & "%' Then%>
<%=RecSet("palle2")%>
<%End If%>
```

För jag kan väl inte använda **Like** här..

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

## #15 — Peter S, 2005-08-17T13:20Z

```
if instr(RecSet("palle1"), Request.Querystring(sokord)) <> 0 then
```

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

## #16 — Meng, 2005-08-17T13:22Z

varför \<\> 0 ? vad gör det? =) undrarbara, för det funkar såklart prima..

Föresten hur gör jag om nu både Palle1 och Palle2 innehåller bokstaven a?

```
<%If instr(RecSet("palle1"), Request.Querystring(sokord)) <> 0 Then%>
Palle1: <%=RecSet("palle1")%>
<%ElseIf instr(RecSet("palle2"), Request.Querystring(sokord)) <> 0 Then%>
Palle2: <%=RecSet("palle2")%>
<%ElseIf instr(RecSet("palle3"), Request.Querystring(sokord)) <> 0 Then%>
Palle3: <%=RecSet("palle3")%>
<%ElseIf instr(RecSet("palle4"), Request.Querystring(sokord)) <> 0 Then%>
Palle4: <%=RecSet("palle4")%>
<%ElseIf instr(RecSet("palle5"), Request.Querystring(sokord)) <> 0 Then%>
Palle5: <%=RecSet("palle5")%>
<%ElseIf instr(RecSet("palle6"), Request.Querystring(sokord)) <> 0 Then%>
Palle6: <%=RecSet("palle6")%>
<%End If%>
```

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

## #17 — Peter S, 2005-08-17T13:26Z

instr() returnerar positionen för substrängen inom den första strängen. En nolla (0) innebär att det inte finns någon matchning.

/Red:

```
for i = 1 to 6
    if instr(recset("palle" & i), request.querystring(sokord)) <> 0 then
        response.write "Palle" & i & ": " & recset("palle" & i) & "<br>"
    end if
next
```

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

## #18 — Meng, 2005-08-17T13:40Z

men nu om jag t ex søker på 123 så får jag som svar:

Palle1: A122
Palle2: A123

Kan man göra så man bara får Palle2: A123 som svar

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

## #19 — Peter S, 2005-08-17T13:45Z

Det måste vara omöjligt att *instr("A122", "123") \<\> 0*!

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

## #20 — Meng, 2005-08-17T13:49Z

tycker jag också men så blir det...

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/132883-söka-på-fler-fält-i-databasen  
Nästa sida: https://www.webforum.nu/amne/databaser-sql/132883-söka-på-fler-fält-i-databasen/page2.md
