---
title: "Paging...vad är det som fattas?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/47684-paging-vad-är-det-som-fattas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "annesophie"
published: "2002-07-11T09:15:09.000Z"
updated: "2002-07-12T10:58:43.000Z"
replies: 20
views: 432
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/47684-paging-vad-är-det-som-fattas"
---

# Paging...vad är det som fattas?

_Sida 1 av 2._

## #1 — annesophie, 2002-07-11T09:15Z

Hej,

Jag har ett ganska basic paging script som jag använder då och då. Oftast enbart med en input type text som söker genom tabeller. Detta brukar funka utan problem. Men så ville jag bygga ut sökningen så att man anger kriterier för sökningen med hjälp av select boxar.

Jag har då sex st select boxar, question 1 - 6, som då söker på olika kolumner i tabeller. 

Jag skriver nu ut värdet av dessa frågor för att se så att frågorna "hänger med", och alla värden kommer med:

5 Aerospace 11K - 12K Single AC/AC Linear

Om jag skriver ut SQL satsen så ser den också rätt ut (så vitt jag kan se iallfall):

SELECT \* FROM products WHERE productGroup LIKE '%5%' AND applicationArea LIKE '%Aerospace %' AND powerclass LIKE '%11K - 12K %' AND outputs LIKE '%Single %' AND technology LIKE '%AC/AC%' AND type LIKE '%Linear%' ORDER BY product; 

Nu är det så att *jag vet* att det finns en produkt i databasen som möter de kriterier som är satta enligt ovan fråga men likväl så får jag i-n-g-e-n träff. Inga felmeddelanden, bara ingen träff.

Vad är det jag missar???? Nåt vitalt förstås...men jag behöver hjälp!

Alla fält i databasen, utom productGroup, är text. productGroup är numeriskt.

Pleaseeeee....

/A

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

## #2 — doggelito, 2002-07-11T09:49Z

ändra denna:
WHERE productGroup LIKE '%5%' 
använd = istället för like och utan apostroftecken och procenttecken

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

## #3 — @nders, 2002-07-11T09:51Z

Dessutom, skall det vara ett mellanslag efter 12k i powerclass?
Om du väljer allt med selectboxar så måste du ju kunna göra exakta jämförelser. Använd därför hellre = än like.

Mvh,

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

## #4 — solbulle, 2002-07-11T10:00Z

REd. svammlar väl bara som vanligt...

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

## #5 — annesophie, 2002-07-11T12:51Z

Hej igen,

Så nu är första delen löst... :)

Men...nu har jag ännu ett omöjligt problem som någon kanske kan hjälpa mig med.

Advanced_search.asp Innehåller ett formulär med de 6 select boxarna (Question 1- 6). Man ska helst kunna välja vilka man fyller i. Alltså alla eller kanske bara en eller ett par. 

Just nu så måste man fylla i alla för att en databasträff ska kunna göras. Naturligtvis så måste jag göra det lite snällare. 

Till problemet. 

Jag skickar iväg formuläret till advanced_search_results.asp där formulärvärden hämtas upp:

question1 = request.form("question1")

question2 = request.form("question2")

question3 = request.form("question3")

question4 = request.form("question4")

question5 = request.form("question5")

question6 = request.form("question6")

Sedan har jag ju en SELECT fråga som *just nu* ser ut som följande:

sql = "SELECT \* FROM products WHERE productGroup = "&question1&" AND applicationArea = '"&question2&"' AND powerclass = '"&question3&"' AND outputs = '"&question4&"' AND technology = '"&question6&"' AND type = '"&question5&"';"
set rs =conn.execute(sql)

Om man nu inte har fyllt i alla fält blir det ju ingen träff, för den söker ju liksom på hela raden ändå....(hoppas att ni förstår).

Exempel: Jag söker efter en produkt som jag vet finns i databasen. Knappar in 5 av 6 sök kriterier och får då ingen träff. Response.write blir SELECT \* FROM products WHERE productGroup = 6 AND applicationArea = 'Consumer' AND powerclass = '1000 - 2999' AND outputs = 'Single' AND technology = 'Switch Mode' AND type = **''**; 
Hade jag fyllt i att  Type skulle vara "AC/DC" så hade den fått träff.

Jag behöver på något sätt skapa en SELECT fråga där *bara* de "questionX = request.form("questionX")" som *inte* är **""** finns med. kan man göra det??

Förstår ni?? \*hoppas\*

/A

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

## #6 — @nders, 2002-07-11T13:16Z

Typ så här:

```
strWhere = ""
if question1<>"" then strWhere = strWhere & " AND productGroup = " & question1
if question2<>"" then strWhere = strWhere & " AND applicationArea = " & question2
if question3<>"" then strWhere = strWhere & " AND powerclass = " & question3
if question4<>"" then strWhere = strWhere & " AND outputs = " & question4
if question5<>"" then strWhere = strWhere & " AND type = " & question5
if question6<>"" then strWhere = strWhere & " AND technology = " & question6
strWhere = Right (strWhere, Len(strWhere)-4)
sql = "SELECT * FROM products WHERE " & strWHERE
```

Mvh,

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

## #7 — annesophie, 2002-07-11T14:28Z

Hmm ok...nu är det väl på gång tror jag... :) Tack @nders! 

Fast, jag känner mig som ett riktigt pucko... :(

Nu sitter jag här och, jag har väl kanske missat något vitalt, men hur fanken faår jag ut data från ev träffar som denna sökning (@nders modell ger)???

Alltså, skratta inte nu men...

Jag bruka ju skriva typ så här:

sql = "select \* from TABELL_XXX where xxx_id = 2;"
set rs =conn.execute(sql)

Ja ni fattar..och sedan hämta upp datan då så här:
\<%=rs("tabell_xxx_produkt")%\> och då lägga det i nån tabell eller så...

Hur kan jag göra det med @nders version???? Jag är verkligen lost! Känner att jag måste lära mig mer om ASP men...ja...kan nån förklara?!!?

Jag vill ju "ha ut" \<%=rs("product")%\>  och \<%=rs("category")%\> men det går ju inte...

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

## #8 — annesophie, 2002-07-11T16:23Z

\*snyft\*

 :(

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

## #9 — @nders, 2002-07-11T16:37Z

Det borde inte vara någon skillnad. Det enda som ändrats är ju sättet att bygga upp SQL-frågan.

På vilket sätt fungerar det inte? Felmeddelande?

Mvh,

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

## #10 — UlfT, 2002-07-11T16:37Z

Jag skulle hantera recordsetet precis likadant med @nders version, som med din. Det enda som skiljer är hur @nders har byggt upp sin sql-sträng. Sedan använder du sql-strängen likadant som du brukar använda sql-strängar.

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

## #11 — annesophie, 2002-07-11T16:43Z

Hmmm nej jag trodde val inte det heller...men nat skumt ar det. Eller, jag kanske ska saga, nat skumt gor jag! :)

Felmeddelandet lyder:

Microsoft VBScript runtime error '800a000d' 

Type mismatch 

/powerbox_version2/documents/advanced_search_RESULTS.asp, line 145 

Den pekar pa: \<%=rs("product")%\> som jag har lagt inne i en tabell i bodyn.

Jag lade in koden som du gjorde:

```
[1] 
strWhere = ""
if question1<>"" then strWhere = strWhere & " AND productGroup = " &
question1
if question2<>"" then strWhere = strWhere & " AND applicationArea = " &
question2
if question3<>"" then strWhere = strWhere & " AND powerclass = " &
question3
if question4<>"" then strWhere = strWhere & " AND outputs = " & question4
if question5<>"" then strWhere = strWhere & " AND type = " & question5
if question6<>"" then strWhere = strWhere & " AND technology = " &
question6
strWhere = Right (strWhere, Len(strWhere)-4)

SQL = "SELECT * FROM products WHERE " & strWHERE

response.write strWHERE
[/1]
```

 

Den "tar", helt korrekt, "med sig" bara den data som man har valt att soka pa. Response.write visar tex just nu:

productGroup = 2 AND applicationArea = Datacom AND powerclass = 5000 - 10K AND outputs = Single AND type = AC/DC AND technology = Switch Mode 

Men felmedelandet bestar oavsett vad jag gor.

Du @nders...hmm kan du forklara for mig varfor man inte anvander en set rs =conn.execute(sql) efter din kodsnutt ?? 

Nagra forslag??

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

## #12 — UlfT, 2002-07-11T16:45Z

> Du @nders...hmm kan du forklara for mig varfor man inte anvander en set rs =conn.execute(sql) efter din kodsnutt ??

Då var det det som fattades. Klart du ska köra även den satsen.

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

## #13 — @nders, 2002-07-11T16:47Z

Såklart!

Jag utelämnade den biten. Sen blev det lite mycket cut & paste också i min kod, så du får lägga tillbaka apostrofer där det behövs, runt värden av texttyp.

Mvh,

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

## #14 — @nders, 2002-07-11T16:53Z

Så här med apostrofer:

```
strWhere = ""
if question1<>"" then strWhere = strWhere & " AND productGroup = " & question1
if question2<>"" then strWhere = strWhere & " AND applicationArea = '" & question2 & "'"
if question3<>"" then strWhere = strWhere & " AND powerclass = '" & question3 & "'"
if question4<>"" then strWhere = strWhere & " AND outputs = '" & question4 & "'"
if question5<>"" then strWhere = strWhere & " AND type = '" & question5 & "'"
if question6<>"" then strWhere = strWhere & " AND technology = '" & question6 & "'"
strWhere = Right (strWhere, Len(strWhere)-4)
sql = "SELECT * FROM products WHERE " & strWhere
```

Mvh,

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

## #15 — annesophie, 2002-07-12T06:54Z

@nders du ar min hjalte! Det funkade med en gang! Det var fnuttarna som fattades ju! TACK!  :bire 

Har bara en sista fraga...sen ar det semester!

I tex tabellfaltet powerclass ligger det inte alltid bara en "inlagd data". Alltsa, i drommarnas varld skulle det val se ut sa har:

Powerclass:

**ProductY:  0- 9**  *men* i sjalva verket sa har dom flesta produkter i databasen fler an en powerclass angiven:

**ProductX:  0 - 9, 10 - 19, 20 - 29**   

Nar jag nu, med hjalp av min selectbox "Powerclass" och @nders geniala kodsnutt ovan, soker efter tex 0 - 9 sa hittar den bara produkter som enbart har 0 - 9 som angiven powerclass, inte de produkter som har tex 0 - 9, 10 - 19.

Men om jag soker med min basic search, vilket ar ett fritext omrade, sa hittar den alla produkter.

Varfor skillnaden, och vad kan jag gora at det?? :q 

/A  :)

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

## #16 — annesophie, 2002-07-12T09:10Z

...nähä...  :(

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

## #17 — @nders, 2002-07-12T09:38Z

Där var du ja. ;)

Du ska inte lagra flera värden i ett fält på det sättet. Det är som gjort för att skapa problem och svårigheter.

Men, det borde gå om du tar tillbaka LIKE-operatorn för just det fältet.

```
strWhere = ""
if question1<>"" then strWhere = strWhere & " AND productGroup = " & question1
if question2<>"" then strWhere = strWhere & " AND applicationArea = '" & question2 & "'"
if question3<>"" then strWhere = strWhere & " AND powerclass LIKE '%" & question3 & "%'"
if question4<>"" then strWhere = strWhere & " AND outputs = '" & question4 & "'"
if question5<>"" then strWhere = strWhere & " AND type = '" & question5 & "'"
if question6<>"" then strWhere = strWhere & " AND technology = '" & question6 & "'"
strWhere = Right (strWhere, Len(strWhere)-4)
sql = "SELECT * FROM products WHERE " & strWhere
```

Om jag nu inte missförstått dig.

Mvh,

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

## #18 — solbulle, 2002-07-12T09:39Z

```
strWhere = ""
if question1<>"" then strWhere = strWhere & " AND productGroup = " & question1
if question2<>"" then strWhere = strWhere & " AND applicationArea = '" & question2 & "'"
if question3<>"" then strWhere = strWhere & " AND powerclass LIKE '%" & question3 & "%'"
if question4<>"" then strWhere = strWhere & " AND outputs = '" & question4 & "'"
if question5<>"" then strWhere = strWhere & " AND type = '" & question5 & "'"
if question6<>"" then strWhere = strWhere & " AND technology = '" & question6 & "'"
strWhere = Right (strWhere, Len(strWhere)-4)
sql = "SELECT * FROM products WHERE " & strWhere
```

Red. Ja, folk har ju två ögon så varför inte ha två lika lösningar? ;)
(Var lite sen där med andra ord.)

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

## #19 — annesophie, 2002-07-12T10:47Z

Ah vad ni ar DUKTIGA! :) 

@nders\>

Jo jag vet...men vem har sagt att det ar moí som har skapat databasen en gang??? Det ar nan kille som jobbade har for 2 ar sedan och...ja...eftersom databasen ar lite for maffig for att byggas om *just nu\[/i sa far man fixa sa gott det gar.

Hmm jo badas forslag funkar ju...forutom att...om jag nu soker pa 0 - 9 sa hittas det mycket riktigt alla som har 0 - 9...men aven de som har 10 - 19. Den regarerar val pa "9" antar jag. Kan man pa nat satt saga ta bara dom som har ett exakt utryck som det jag angivit i sokkriterierna??

/A*

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

## #20 — @nders, 2002-07-12T10:54Z

> **annesophie skrev:**
>
> Hmm jo badas forslag funkar ju...forutom att...om jag nu soker pa 0 - 19 sa hittas det mycket riktigt alla som har 0 - 19...men aven de som har en 10 - 19. Den regarerar val pa "9" antar jag. Kan man pa nat satt saga ta bara dom som har ett exakt utryck som det jag angivit i sokkriterierna??
> 
> /A

Jo, det blir så, det är så textjämförelserna funkar. Det du skulle kunna göra är att se till så det alltid finns ett mellanslag före varje 'värde' i fältet, och ha med ett mellanslag före när du gör din LIKE-sökning. Om du vill så kan du enkelt uppdatera alla poster med ett inledande mellanslag med en SQL-fråga.

> Jo jag vet...men vem har sagt att det ar moí som har skapat databasen en gang??? Det ar nan kille som jobbade har for 2 ar sedan och...ja...eftersom databasen ar lite for maffig for att byggas om just nu. Inte sa kul. Man far gora sa gott det gar.

 Det har ingen sagt. Inte jag heller. Jag bara upplyser. :)

Mvh,

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/47684-paging-vad-är-det-som-fattas  
Nästa sida: https://www.webforum.nu/amne/asp/47684-paging-vad-är-det-som-fattas/page2.md
