---
title: "Hämta endast valda bokstäver ur DB"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/151728-hämta-endast-valda-bokstäver-ur-db"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "TheMagnus"
published: "2006-09-25T13:54:37.000Z"
updated: "2006-09-26T17:04:01.000Z"
replies: 14
views: 599
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/151728-hämta-endast-valda-bokstäver-ur-db"
---

# Hämta endast valda bokstäver ur DB

## #1 — TheMagnus, 2006-09-25T13:54Z

Så här ligger det till:
Jag har en droplista med bokstäver från a till z. Man ska kunna markera flera bokstäver m.h.a. att man håller inne \[Ctrl\]-knappen alt. \[Shift\]-knappen. Alltså en \<select multiple\>.
Nu är jag ingen höjdare på ASP, så jag skulle vilja ha en liten guide på hur man kodar för att lista alla produkter som börjar på de valda bokstäverna?

"SELECT product FROM tabell WHERE product LIKE '" + bokstav + "%' ORDER BY product"

Så långt är jag med, men själva ASP-kodningen är jag ingen fena på, så det skulle vara grymt med en hint eller tre. :)

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

## #2 — Peter S, 2006-09-25T17:28Z

Om DBMS = MySQL och REGEXP är tillgängligt, kanske följande kan fungera:

```
select product
  from tabell
 where lcase(product)
regexp '^[" & lcase(replace(request.querystring("select")), ",", "") & "]'
order
    by product
```

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

## #3 — emission, 2006-09-25T18:44Z

SQL-satsen som TheMagnus skrev var helt OK, så någon regexp behövs inte.

```
strSQL="SELECT product FROM tabell WHERE 1=0" 
for each item in request("select")
strSQL = strSQL & " OR product LIKE '" & replace(item,"'","''") & "%'"
next
```

1=0 är en liten fuling, men jag var lat och den fungerar bra

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

## #4 — doggelito, 2006-09-26T06:00Z

Nu var det ju asp´n han ville ha hjälp med så:

```
Dim objConn, objRs, sql
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.open "Provider_beroende_på_databas"

sql = "SELECT product FROM tabell WHERE product LIKE '" + bokstav + "%' ORDER BY product"

Set objRs = objConn.execute(sql)

Do Until objRs.Eof
     Response.Write(objRs("product") & "<br />")
     objRs.MoveNext
Loop

Set objRs = Nothing
Set objConn = Nothing
```

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

## #5 — TheMagnus, 2006-09-26T06:51Z

Tack alla, men jag lyckades kanske förklara lite skumt... Jag ska försöka igen. :)

Jag har en lista:
\<select name="bokstav" **multiple**\>
  \<option value="a"\>A\</option\>
  \<option value="b"\>B\</option\>
  \<option value="c"\>C\</option\>
...
  \<option value="z"\>Z\</option\>
\</select\>

Man ska alltså kunna välja flera bokstäver genom att hålla inne \[Ctrl\]-tangenten. Hur ser kodningen ut för att lista alla som börjar på de tecken man valt då?

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

## #6 — @nders, 2006-09-26T07:07Z

Har du testat emissions kod?
Se bara till att du gör request på *bokstav*, så borde nog SQL-frågan byggas upp riktigt.

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

## #7 — TheMagnus, 2006-09-26T07:18Z

Oj fasen, den missade jag ju totalt!  :r  Ska genast testa denna kodsnutt!

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

## #8 — TheMagnus, 2006-09-26T10:59Z

Hmm, det vill inte fungerar riktigt som jag vill...

```
Microsoft JScript compilation  error '800a03ed'

Expected '('

/produkter.asp, line 93

for each item in Request("Drop")
----^
```

```
<form name="selectcat" method="post" action="produkter.asp">
  <select name="Drop" size=2>
    <option Value="a">A</option>
    <option Value="b">B</option>
    <option Value="c">C</option>
    ...
    <option value="z">Z</option>
</select>
<input type="Submit" name="Go" value="Go">
</form>

<%
var conn=Server.CreateObject("ADODB.Connection");
conn.Provider="Microsoft.Jet.OLEDB.4.0";
conn.Open(Server.MapPath("mindatabas.mdb"));

if (String(Request("Go")) != "undefined") {
	strSQL = "SELECT product FROM industries WHERE 1=0" 
  for each item in Request("Drop")
    strSQL = strSQL & " OR letter LIKE '%" & replace(item,"'","''") & "%'"
  next
  strSQL = strSQL & " ORDER BY product"
  ProductQuerys = conn.execute(strSQL)

  if (ProductQuerys.BOF & ProductQuerys.EOF)
    Response.Write("")
  else {
    while (!ProductQuerys.EOF) {
      Response.Write("<span class='results23'>" + ProductQuerys('product') + "</span><br>\n")
      ProductQuerys.MoveNext();
    }
  }
  Response.Write("<p class='results23'>&nbsp;</p>")
} else {
  Response.Write("<p class='results23'>&nbsp;</p>")
  conn.Close();
}
%>
```

Tänkte vara lite duktig och placera ut en parentes där han ville ha den, och en på slutet på den raden också, men det ville han inte vara med på serrö!

```
Microsoft JScript compilation  error '800a03ec'

Expected ';'

/produkter.asp, line 93

for (each item in Request("Drop"))
----------^
```

Och där vettefasen om det ska vara ett semicolon...? Hjälp! :l

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

## #9 — Travoni, 2006-09-26T11:57Z

for each item in Request("Drop");

kanske?

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

## #10 — Travoni, 2006-09-26T11:58Z

...eller, jag vetekatten om du kan göra så i jscript.
Skall du inte även ha krullparenteser med där?

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

## #11 — TheMagnus, 2006-09-26T12:02Z

Nej, fick dessvärre samma fel när jag satte semikolonet där...

```
Microsoft JScript compilation  error '800a03ec'

Expected ';'

/produkter.asp, line 93

for (each item in Request("Drop"));
----------^
```

**r/**

```
  for (each item in Request("Drop")){
    strSQL = strSQL & " OR letter LIKE '%" & replace(item,"'","''") & "%'";
  }
```

gav felmeddelandet:

```
Microsoft JScript compilation  error '800a03ec'

Expected ';'

/produkter.asp, line 93

for (each item in Request("Drop")){
----------^
```

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

## #12 — @nders, 2006-09-26T12:06Z

Du skulle kanske ha nämnt att du använder JScript. Byt då från & till + vid konkateneringarna i SQL-frågan.

Och, for-slinga: <http://msdn.microsoft.com/library/en-us/script56/html/1b51a0ce-89f7-4a69-88ed-017b47dc398f.asp?frame=true>

Konkatenera alltså på samma sätt som du gör i resten av din jscript-kod, och skriv om for-slingan med rätt syntax.

/a

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

## #13 — Travoni, 2006-09-26T12:25Z

Något åt detta håll:

```
if (String(Request("Go")) != "undefined") {
var rf = Request("Drop"), strSQL;
strSQL = "SELECT product FROM industries WHERE 1=0";
var e = new Enumerator(rf);
for(; !e.atEnd(); e.moveNext())
{
    strSQL = strSQL + " OR letter LIKE '%" + e.item().replace("'","''") + "%'"
}
  strSQL = strSQL + " ORDER BY product";
  ProductQuerys = conn.execute(strSQL);
.....
```

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

## #14 — TheMagnus, 2006-09-26T12:57Z

**@nders**: Hade jag vetat det så hade jag berättat det. :r Är som sagt inte ASP'are i vanliga fall. PHP är mer min melodi, men ibland får man se sig som en svikare och lämna över sig till fienden... :e

**Travoni**: Tack! du är dagens hjälte! :bire

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

## #15 — emission, 2006-09-26T17:04Z

Ok, då rekommenderar jag starkt att du går över till VBScript i stället för JScript. Inte för att det är bättre, för det är det inte, men för att 99,9% av all ASP skrivs i VBScript och det blir lättare att få hjälp.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/151728-hämta-endast-valda-bokstäver-ur-db
