---
title: "Sökning"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/148852-sökning"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "WebbisNet"
published: "2006-07-09T02:00:00.000Z"
updated: "2006-07-10T19:21:08.000Z"
replies: 15
views: 620
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/148852-sökning"
---

# Sökning

## #1 — WebbisNet, 2006-07-09T02:00Z

Jag bygger en sida där man kan söka ex:
jag är \[val\] som söker \[val\] och som bor i \[val\] och som har status \[val\]

problemet är att jag med denna kod

```
<%varLan = Request.Form("selCommunity")
varSex = Request.Form("selSex") 'Jag är
varSex1 = Request.Form("selSex1") 'som söker
varInloggad = Request.Form("selInloggad") 'och som bor i
varStatus = Request.Form("selStatus") 'och som har status

if varLan <> "" then

[b]set RS = objConn.Execute("Select distinct * From tblUsers where community = '" & varLan & "' and inloggad = "& varInloggad &" and statusItem = '"& varStatus &"' and Sex = '"& varSex &"' and Sex = '"& varSex1 &"' ORDER BY vip = 1 desc")[/b]
```

får detta
\[MySQL\]\[ODBC 3.51 Driver\]\[mysqld-4.0.25-max\]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'and statusItem = 'Söker' and Sex = 'M, M' and Sex = '' ORDER BY

Felande raden är fetmarkerad

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

## #2 — WebbisNet, 2006-07-09T09:12Z

Den här delen löste sig, det jag undrar nu är hur man får sökningen att visa medlemmar som är online OCH offlline och inte bara online eller offline

```
<select class="textbox" name="selInloggad">
<option selected>== Välj ==</option>
<option value="1">Online</option>
<option value="0">Offline</option>
<!--<option value="">Online eller Offline</option>-->
</select>

set rs = objConn.Execute("Select distinct * From tblUsers where community = '" & varLan & "' and inloggad = "& varInloggad &" and statusItem = '"& varStatus &"' and Sex = '"& varSex &"' ORDER BY vip = 1 desc")
```

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

## #3 — WebbisNet, 2006-07-10T00:13Z

När jag skriver ut denna del 
**set rs = objConn.Execute("Select \* From tblUsers where Sex='"& varSex &"' OR community='"& varLan &"' OR statusItem ='"& varStatus &"' OR anvbild ="& varBild &" OR inloggad="& varInloggad &"")**

får jag
Select \* From tblUsers where Sex='F' OR community='' OR statusItem ='' OR anvbild =1 OR inloggad=

och felmeddelande
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

\[MySQL\]\[ODBC 3.51 Driver\]\[mysqld-4.0.25-max\]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

/Search/detailsearch.asp, line 98 

Då jag testade med att inte söka i alla fält så ser det rätt ut men det funkar ändå inte, VAD är fel, Rad 98 är fetmarkerad

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

## #4 — WebbisNet, 2006-07-10T12:33Z

ingen som vet hur jag ska kunna söka på vissa fält och inte bara alla

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

## #5 — Pace, 2006-07-10T12:51Z

Lägg inte till fälten i sql-frågan om de är tomma.

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

## #6 — WebbisNet, 2006-07-10T15:34Z

> **Pace skrev:**
>
> Lägg inte till fälten i sql-frågan om de är tomma.

Hur ska man skriva om koden då?

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

## #7 — Pace, 2006-07-10T15:54Z

Exempel:

Om Request.Form("selSex") inte är tom, lägg till den i sql-satsen efter WHERE\-klasulen i stil med "sex = 'värdet' OR ".

Gör likadant med alla variabler. Ta sedan bort de tre sista tecknen från sql-frågan (som kommer att vara " OR").

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

## #8 — WebbisNet, 2006-07-10T16:05Z

Ska det vara NULL eller ""

if not Request.Form("selCommunity") = "NULL" then
varLan = Request.Form("selCommunity")
end if

if not Request.Form("selSex") = "NULL" then
varSex = Request.Form("selSex")
end if

if not Request.Form("selStatus") = "NULL" then
varStatus = Request.Form("selStatus")
end if

if not Request.Form("selBild") = "NULL" then
varBild = Request.Form("selBild")
end if

if not Request.Form("selInloggad") = "NULL" then
varInloggad = Request.Form("selInloggad")
end if

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

## #9 — Pace, 2006-07-10T17:05Z

"" = tom sträng

Null = finns inte

(I alla fall när det gäller objektorientering. Scriptbaserade språk kan vara något mer förlåtande.)

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

## #10 — WebbisNet, 2006-07-10T17:24Z

Går ändå inte med denna kod:

```
<%if not Request.Form("selCommunity") = "" then
varLan = Request.Form("selCommunity")
end if

if not Request.Form("selSex") = "" then
varSex = Request.Form("selSex")
end if

if not Request.Form("selStatus") = "" then
varStatus = Request.Form("selStatus")
end if

if not Request.Form("selBild") = "" then
varBild = Request.Form("selBild")
end if

if not Request.Form("selInloggad") = "" then
varInloggad = Request.Form("selInloggad")
end if%>
</td>
</tr>

<%if request("do")="search" and request("type")="detail" and request("r")="1" then

set rs = objConn.Execute("Select * From tblUsers where Sex='"& varSex &"' OR community='"& varLan &"' OR statusItem ='"& varStatus &"' OR anvbild ="& varBild &" OR inloggad="& varInloggad &"")%>
```

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

## #11 — Pace, 2006-07-10T17:28Z

Nja, jag skrev att du ska lägga till den i *sql-frågan* om värdet är tomt.

Exempel:

```
foo = Request.Form("formname")

If foo = "" Then
   SqlQuery = SqlQuery & "sex =  '" & foo & "' OR"
End If

... (och likadant med alla formulärfält)
```

Sedan tar du bort de tre sista tecknen från sql-frågan.

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

## #12 — WebbisNet, 2006-07-10T17:35Z

så här har jag aldrig skrivit, sugen på att ge mig ett exempel på hur jag blandar in min objConn.Execute med???

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

## #13 — Pace, 2006-07-10T18:29Z

```
Dim SqlQuery
Dim SqlWhereClause

' Bestäm vilka parametrar som ska ingå i frågan.
If Not Request.Form("selCommunity") = "" Then
   SqlWhereClause = " community = '" & Request.Form("selCommunity") & "' OR"
End If

If Not Request.Form("selSex") = "" Then
   SqlWhereClause = " sex = '" & Request.Form("selSex") & "' OR"
End If

...

' Ta bort sista tre tecknen ur frågan.
If SqlWhereClause <> "" Then
   SqlWhereClause = Mid(SqlWhereClause, 0, Len(SqlWhereClause) - 3)
End If

' Bygg ihop WHERE-klausulen i den fullständiga sql-frågan.
SqlQuery = "SELECT * FROM tblUsers WHERE (inloggad = " & varInloggad & ") AND (" & SqlWhereClause & ")"

' Kör frågan.
set rs = objConn.Execute(SqlQuery)
...
```

Var ett tag sedan jag skrev vbscript så det kan ha smugit in några fel. Dessutom har jag inte lagt in några felkontroller över huvud taget (mot sql injections, när SwlWhereClause är tom etc).

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

## #14 — WebbisNet, 2006-07-10T19:03Z

Microsoft VBScript runtime  error '800a0005'

Invalid procedure call or argument: 'mid'

SqlQuery = "SELECT \* FROM tblUsers WHERE (inloggad = " & varInloggad & ") AND (" & SqlWhereClause & ")"
 

och hur skriver man färdigt resten av frågan med bild ,sex, status och community
SqlQuery = "SELECT \* FROM tblUsers WHERE (inloggad = " & varInloggad & ") AND (" & SqlWhereClause & ")"

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

## #15 — Pace, 2006-07-10T19:20Z

MidStr kanske det heter i vbscript. Hur som helst så tar funktionen ut de tecken inom ett angivet intervall.

> och hur skriver man färdigt resten av frågan med bild ,sex, status och community

Gör samma sak som jag gjort på rad 5 till 7. Byt ut namnen.

Om du inte vet hur man gör det bör du nog skaffa dig mer grundläggande kunskaper om ASP.

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

## #16 — WebbisNet, 2006-07-10T19:21Z

jag kan asp men jag har däremot aldrig byggt en sån här sträng så jag lär mig allt eftersom :-)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/148852-sökning
