---
title: "Söka utan att fylla i alla fält"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/168819-söka-utan-att-fylla-i-alla-fält"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Lorelie"
published: "2008-02-07T19:51:29.000Z"
updated: "2008-02-10T20:50:06.000Z"
replies: 17
views: 957
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/databaser-sql/168819-söka-utan-att-fylla-i-alla-fält"
---

# Söka utan att fylla i alla fält

## #1 — Lorelie, 2008-02-07T19:51Z

Hur gör man för att få fram ett sökresultat i ett formulär utan att behöva fylla i alla uppgifter? har två dropdownlistor som måste få ett värde för att resultat ska visas.

<http://www.aramennoc.se> vänster sida finns en drop down och i den längst ner under konstruktion för att se det aktuella formuläret 

Koden ser ut såhär just nu : <http://www.aspsidan.se/code/default.asp?c=11147>

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

## #2 — Peter S, 2008-02-07T20:42Z

Jag ser endast en dropdownlist. Kan du beskriva lite närmare vad du vill göra?

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

## #3 — Lorelie, 2008-02-07T20:48Z

> **Peter S skrev:**
>
> Jag ser endast en dropdownlist. Kan du beskriva lite närmare vad du vill göra?

Gick du in på "Under konstruktion" i den listan då?  

Vill kunna lämna de två listorna utan att söka på något speciellt och ändå få fram resultat. Alla andra saker går att lämna tomma. fyll inte i något och klicka på sök, det kommer inte hittas något, fyll i tex sverige och skimmel och sök så kommer det upp en del

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

## #4 — Peter S, 2008-02-07T21:04Z

Aha, nej, jag gick inte in under "Under konstruktion".

Så här kanske:

```
SQL = _
"select *" &_
"  from hast" &_
" where kon  = '"& SafeSQL(Request.Form("kon")) &"'" &_
"   and ras  = '"& SafeSQL(Request.Form("ras")) &"'" &_
"   and farg = '"& SafeSQL(Request.Form("farg")) &"'"

namn = SafeSQL(Request.Form("hast"))
stambok = lcase(SafeSQL(Request.Form("stambok")))
uppf = SafeSQL(Request.Form("uppf"))

if namn <> "" then
 SQL = SQL & " and namn like '" & namn & "%'"
end if

if stambok = "not null" then
 SQL = SQL & " and stambok is not null"
elseif stambok = "null" then
 SQL = SQL & " and stambok is null"
end if

if uppf <> "" then
 SQL = SQL & " and uppf like '%" & uppf & "%'"
end if

SQL = SQL & " order by " & SafeSQL(Request.Form("ordning"))
```

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

## #5 — Lorelie, 2008-02-08T13:02Z

Tack!
Men det funderade inte alls, ingen skillnad, dvs inget kom upp när man sökte med tomma rutor, och saker och ting dök upp när man fyller i uppgifter

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

## #6 — Peter S, 2008-02-09T09:42Z

Hur SQL-strängen ut när du inte fyller i några uppgifter? D.v.s. skriv

```
response.write SQL
response.end
```

...direkt efter *SQL = SQL & " order by " & SafeSQL(Request.Form("ordning"))*.

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

## #7 — Lorelie, 2008-02-10T17:59Z

select \* from hast where kon = 'Hingst' and ras = 'ras' and farg = 'farg' order by namn

Ras = nationalitet

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

## #8 — Peter S, 2008-02-10T18:42Z

Använder du det kodstycke jag postade ovan nu?

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

## #9 — Lorelie, 2008-02-10T18:43Z

> **Peter S skrev:**
>
> Använder du det kodstycke jag postade ovan nu?

Nej, kom på att jag provade en annan, nu har jag bytt

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

## #10 — Peter S, 2008-02-10T18:43Z

Hur ser den genererade SQL-strängen ut då?

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

## #11 — Lorelie, 2008-02-10T18:47Z

> **Peter S skrev:**
>
> Hur ser den genererade SQL-strängen ut då?

select \* from hast where kon = 'Hingst' and ras = 'ras' and farg = 'farg' order by namn

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

## #12 — Peter S, 2008-02-10T19:05Z

Hur kan exempelvis SafeSQL(Request.Form("ras")) bli 'ras' med tanke på att elementet 'ras' är definierat som

```
<select name="ras">
<option selected value="%">Land/Stambok</option>
<option value="Connemara">Sverige</option>
<option value="IRE">Irland</option>
<option value="GBR">England</option>
<option value="DK">Danmark</option>
<option value="DE">Tyskland</option>

<option value="FIN">Finland</option>
<option value="NOR">Norge</option>
<option value="FRA">Frankrike</option>
<option value="AUS">Australien</option>
<option value="USA">USA</option>
<option value="NDL">Nederländerna</option>
<option value="NPS">NPS</option>
<option value="NZ">Nya Zeeland</option>
</select>
```

?

Sedan saknas ett *\</form\>*.

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

## #13 — Peter S, 2008-02-10T19:20Z

Testa följande:

```
SQL = _
"select *" &_
"  from hast" &_
" where kon  = '"& SafeSQL(Request.Form("kon")) &"'"

farg = SafeSQL(Request.Form("farg"))
ras = SafeSQL(Request.Form("ras"))
namn = SafeSQL(Request.Form("hast"))
stambok = lcase(SafeSQL(Request.Form("stambok")))
uppf = SafeSQL(Request.Form("uppf"))

if farg <> "%" then
 SQL = SQL & " and farg like '" & farg & "%'"
end if

if ras <> "%" then
 SQL = SQL & " and ras like '" & ras & "%'"
end if

if namn <> "" then
 SQL = SQL & " and namn like '%" & namn & "%'"
end if

if stambok = "not null" then
 SQL = SQL & " and stambok is not null"
elseif stambok = "null" then
 SQL = SQL & " and stambok is null"
end if

if uppf <> "" then
 SQL = SQL & " and uppf like '%" & uppf & "%'"
end if

SQL = SQL & " order by " & SafeSQL(Request.Form("ordning"))
```

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

## #14 — Lorelie, 2008-02-10T20:22Z

\#13 Funkar kanon =D 

Tack för hjälpen! 

ang. #12 så provade jag en sak bara, funkade ju inget vidare, hann inte byta tillbaka filen just då

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

## #15 — Peter S, 2008-02-10T20:22Z

Trevligt! :bire

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

## #16 — Lorelie, 2008-02-10T20:39Z

En liiiiten fråga till,  jag vill kunna söka endast efter hästar med bild också, hur får jag till det? Tänkte mig en checkbox i formuläret, \<input type="checkbox" name="bild"\>
men hur gör jag med sql-en? 
Det bör väl vara något om att om bild = bild så visa bara poster där bild_url is not null ? 

I databasen är fältet "bild_url" antingen ifylld eller inte, kryssar man i rutan så ska endast de med bild komma upp

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

## #17 — Peter S, 2008-02-10T20:46Z

Då blir det typ

```
bild = SafeSQL(Request.Form("bild"))

if bild <> "" then
 SQL = SQL & " and bild_url is not null"
end if
```

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

## #18 — Lorelie, 2008-02-10T20:50Z

:f  Vad skulle jag göra utan dig!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/168819-söka-utan-att-fylla-i-alla-fält
