---
title: "Sortering med rubriker"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12198-sortering-med-rubriker"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Addeladde"
published: "2001-10-19T17:55:00.000Z"
updated: "2001-10-20T11:48:00.000Z"
replies: 10
views: 247
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/12198-sortering-med-rubriker"
---

# Sortering med rubriker

## #1 — Addeladde, 2001-10-19T17:55Z

Jag ska göra en lista på några saker.
Vi tar ett exempel:

Här har jag en databas med innehållet.
Namn: \<\< kategoriID
blå \<\< 1
grön \<\<1
lila \<\<1
fiat \<\<2
volvo \<\<2
audi \<\<2

Av detta innehåll i databasen vill jag få ut detta:

Färger:
blå
grön
lila

Bilar:
fiat
volvo
audi

Måste jag göra flera sökningar eller räcker det med en. För kategori sifrornna tänkte jag avända mig av
en case sats.

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

## #2 — LarsG, 2001-10-19T18:09Z

```
set connect = server.createobject("adodb.connection")
set rs = connect.execute("select * from katergorier order by kategoriid")

kategori = cint(0)
while not rs.eof
  if kategori <> cint(rs("kategoriID")) then
     response.write "<br>"
     kategori = cint(rs("kategoriID")) 
     if kategori = 1 then
        resposne.write "Färger: <br>"
     elseif kategori = 2 then
        response.write "Bilar: <br>"
     end if
  end if
  response.write rs("namn")
  rs.movenext
wend
rs.close
connect.close
```

eller jag kanske missuppfattade det där med kategorierna. Har du någon tabeller där du lagrar kategorinamn och som du kan joina med.

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

## #3 — Addeladde, 2001-10-19T18:17Z

Jag ska nog ha en tabell istället med kategorierna eftersom det kan bli några stycken. En join sats är säkert bättre då. Men hur?

Jag ska även ha pagecount på sidan så att raderna inte blir för många. Kommer det att fungera som vanligt med sidbläddring om man gör en join

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

## #4 — LarsG, 2001-10-19T18:27Z

> Jag ska nog ha en tabell istället med kategorierna eftersom det kan bli några stycken. En join sats är säkert bättre då. Men hur?

Om din tabell med olika kategorier ser ut så här

KATEGORI
\--------
ID!KATEGORI
\--------
1!Färger
2!Bilar

och om din andra tabell som du visade heter produkter så skulle det kunna se ut så här 

```
set connect = server.createobject("adodb.connection")
set rs = connect.execute("select * from katergorier as k inner join produkter as p on p.kategorid = k.id order by k.kategori")
kategori = ""
while not rs.eof
if kategori <> rs("kategori")) then
response.write "<br>"
kategori = rs("kategori) 
resposne.write kategori & "<br>"
response.write rs("namn")
rs.movenext
wend
rs.close
connect.close
```

> Jag ska även ha pagecount på sidan så att raderna inte blir för många. Kommer det att fungera som vanligt med sidbläddring om man gör en join

Ja, det blir ingen skillnad där

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

## #5 — Addeladde, 2001-10-19T18:50Z

Tabellerna ser ut på detta sätt

Refrenser:
referens_namn
referens_foretag

referensforetag
ID 
foretag

ID är samma som referensforetag.

Jag får däremot inte min kod att fungera

```
' Öppna dataförbindelsen
Set con = Server.CreateObject("ADODB.Connection")
con.Open Application("databas")

pg = TRIM( Request( "pg" ) )
IF pg = "" THEN pg = 1 

Set referensRS = Server.CreateObject( "ADODB.Recordset" )
referensRS.ActiveConnection = Con
referensRS.CursorType = adOpenStatic
referensRS.CursorLocation = adUSEClient
referensRS.Pagesize = 3

sqlString = "select referens_namn, referens_foretag, foretag" &_
"FROM referensforetag as k inner join referenser as r on r.referens_foretag = k.id "&_
"order by k.foretag"
kategori = ""
WHILE NOT referensRS.eof
IF kategori <> referensRS( "foretag" ) then
response.write "<br>"
kategori = referensRS( "foretag" ) 
resposne.write kategori & "<br>"
response.write referensRS("referens_namn")
referensRS.MoveNext
WEND

referensRS.close
set referensRS = nothing
con.close
set con = nothing
%>
```

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

## #6 — LarsG, 2001-10-19T20:54Z

```
sqlString = "select referens_namn, referens_foretag, foretag" &_
" FROM referensforetag as k inner join referenser as r on r.referens_foretag = k.id "&_
" order by k.foretag"
```

Det saknas en blank framför FROM

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

## #7 — Addeladde, 2001-10-20T10:15Z

Jag har ändrat några stavfel och ett uteblivet end if, men det fungerar inte får felmeddelandet

> Feltyp:
> Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
> \[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] För få parametrar angavs. 2 förväntades.
> /arkivet/test.asp, line 26

Rad 26 gäller SQL frågan

```
Set referensRS = Server.CreateObject( "ADODB.Recordset" )
referensRS.ActiveConnection = Con
referensRS.CursorType = adOpenStatic
referensRS.CursorLocation = adUSEClient
referensRS.Pagesize = 3

sqlString = "select referens_namn, referens_foretag, foretag " &_
"FROM referenskategori as k inner join referenser as r on r.referens_foretag = k.id " &_
" ORDER BY k.foretag"
referensRS.Open sqlString
referensRS.AbsolutePage = pg
referenser = referensRS.RecordCount
response.write sqlstring

kategori = ""
WHILE NOT referensRS.EOF
IF kategori <> referensRS( "foretag" ) THEN
response.write "<br>"
kategori = referensRS( "foretag" ) 
response.write kategori & "<br>"
END IF
response.write referensRS("referens_namn")
referensRS.MoveNext
WEND

referensRS.close
set referensRS = nothing
con.close
set con = nothing
```

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

## #8 — LarsG, 2001-10-20T10:19Z

Det felmeddelandet får man om man anger en kolumn eller tabell som inte finns definierad.

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

## #9 — Addeladde, 2001-10-20T10:41Z

Ändrade lite till och nu får jag detta meddelande:

> Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
> \[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Kopplingsuttrycket stöds inte.

```
sqlString = "select r.referens_namn, r.referens_foretag, k.foretag " &_
"FROM referenskategori as k inner join referenser as r " &_
"ON referens_foretag = k.id  " &_
" ORDER BY k.foretag"
```

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

## #10 — LarsG, 2001-10-20T11:06Z

Jag vet inte vad som orsakar det felet. Du kan ju testa med någon av dessa varianter.

```
sqlString = "select r.referens_namn, r.referens_foretag, k.foretag " &_
"FROM referenskategori as k inner join referenser as r " &_
"ON [b]r.[/b]referens_foretag = k.id " &_
" ORDER BY k.foretag"
```

eller

```
sqlString = "select r.referens_namn, r.referens_foretag, k.foretag " &_
"FROM referenskategori as k ,referenser as r " &_
"where r.referens_foretag = k.id " &_
" ORDER BY k.foretag"
```

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

## #11 — Addeladde, 2001-10-20T11:48Z

Jag fick igång det tillslut. Jag ändrade lite namn i tabellerna så det blev lite mer lättförståligt.

Tack för hjälpen LarsG.

```
sqlString = "SELECT * " &_
"FROM foretag, kategori " &_
"WHERE foretag_kategori = kategori_id " &_
" ORDER BY kategori_id DESC, foretag_namn "
referensRS.Open sqlString
referensRS.AbsolutePage = pg
referenser = referensRS.RecordCount

kategori = ""
WHILE NOT referensRS.EOF
IF kategori <> referensRS( "Kategori_namn" ) THEN
response.write "<br>"
kategori = referensRS( "kategori_namn" ) 
response.write "<b>"& kategori & "</b><br>"
END IF
response.write referensRS("foretag_namn") & "<br>"
referensRS.MoveNext
WEND

referensRS.close
set referensRS = nothing
con.close
set con = nothing
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/12198-sortering-med-rubriker
