---
title: "Sökmotor bland länksamling"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/13303-sökmotor-bland-länksamling/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Pace"
published: "2001-12-12T22:20:00.000Z"
updated: "2001-12-20T21:18:00.000Z"
replies: 27
views: 447
page: 2
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/13303-sökmotor-bland-länksamling"
---

# Sökmotor bland länksamling

_Sida 2 av 2._

## #21 — Pace, 2001-12-20T19:30Z

Jaja, jag fick lösa det med joins.

Har lagt alla kategorier i en och samma tabell. Men nu vill jag rita upp en snygg Select-lista där jag spaltar upp kategorierna med underkategorierna under. Hur gör jag det?

```
Link_Categories
---------------
Cat_ID - Cat_Name - Cat_ParentID
```

Där det sista fältet gör att posten motsvarar en underkategori till en överkategori (Cat_ID).

Exempel:

```
1 - Film - null
2 - Företag - null3
3 - Svensk - 1
4 - Uthyrning - 2

[b]Resultat:[/b]

Film
- Svensk

Företag
- Uthyrning
```

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

## #22 — LarsG, 2001-12-20T19:58Z

```
sub getTree(connect,id,level)
dim sql,rs,i
if isnull(id) then
   sql = "select cat_id,cat_name from link_categories where parent_id is null"
else
   sql = "select cat_id,cat_name from link_categories where parent_id = " & id
end if
set rs = connect.execute(sql)

while not rs.eof 
  for i = 0 to level - 1
      response.write "-"
  next
  response.write rs("cat_name") & "<br>"
  getTree connect,rs("cat_id"),level+1
  if level = 0 then
     response.write "<br>"
  end if
  rs.movenext
wend
rs.close
set rs = nothing
end sub

set connect = server.createobject("adodb.connection")
connect.open "dsn"

getTree connect,null,0

connect.close
set connect = nothing
```

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

## #23 — Pace, 2001-12-20T20:04Z

Blev tyvärr en evighetsgrej det där :(.
Finns det inget annat sätt så att man kör med färre SQL satser? T.ex. att ladda in allt i en matris och sedan köra sorteringen från ASP koden?

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

## #24 — LarsG, 2001-12-20T20:10Z

Det är en fördel om man gör movenext också.

```
while not rs.eof 
for i = 0 to level - 1
response.write "-"
next
response.write rs("cat_name") & "<br>"
getTree connect,rs("cat_id"),level+1
if level = 0 then
response.write "<br>"
end if
[b]rs.movenext[/b]
wend
```

/r
Det är fördel om man skriver rätt också

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

## #25 — LarsG, 2001-12-20T20:36Z

> T.ex. att ladda in allt i en matris och sedan köra sorteringen från ASP koden?

så här alltså

```
sub getTree(a,id,level)
dim i,j

for i = 0 to ubound(a,1)
    if  a(i,2) = id or ( isnull(id) and isnull(a(i,2)) then
        for j = 0 to level - 1
            response.write "-"
        next
        response.write a(i,1) & "<br>"
        getTree a,a(i,0),level+1
        if  level = 0 then
            response.write "<br>"
        end if
    end if
next
end sub

set connect = server.createobject("adodb.connection")
connect.open "dsn"

set rs = connect.execute("select * from link_categories")

if not rs.eof then
   a = rs.getrows()
   getTree a,null,0
end if
```

?

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

## #26 — Pace, 2001-12-20T20:43Z

Precis! Men... Slut på stackutrymme. ;) 

(räknade looparna: 9 000 st innan felmeddelandet! :O)

Verkar som det blev en evighetsgrej det där också? ;)

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

## #27 — LarsG, 2001-12-20T21:01Z

Hmm

```
sub getTree(a,id,level,startAt)
dim i,j
for i = startAt to ubound(a,1)
if a(i,2) = id or ( isnull(id) and isnull(a(i,2)) then
for j = 0 to level - 1
response.write "-"
next
response.write a(i,1) & "<br>"
getTree a,a(i,0),level+1,i+1
if level = 0 then
response.write "<br>"
end if
end if
next
end sub

set connect = server.createobject("adodb.connection")
connect.open "dsn"
set rs = connect.execute("select cat_id, cat_name, cat_parentID from link_categories order by cat_parentID")

if not rs.eof then
a = rs.getrows()
getTree a,null,0,0
end if
```

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

## #28 — Pace, 2001-12-20T21:18Z

Det fixade sig till slut! :) :D 

Du har råkat använda index 1 istället för 2 i matrisen:

```
sub getTree(a,id,level,startAt)
	dim i,j
	for i = startAt to ubound[b](a,2)[/b]
		if [b]a(2, i)[/b] = id or ( isnull(id) and isnull([b]a(2,i)[/b])) then
			for j = 0 to level - 1
			response.write "-"
			next
			
			response.write [b]a(1, i)[/b] & "<br>"
			getTree a, [b]a( 0, i)[/b], level+1, i+1
			
			if level = 0 then
			response.write "<br>"
			end if
		end if
	next
end sub
```

Jag tackar ödmjukast! 
Du är en sann tillgång till wF, LarsG!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/13303-sökmotor-bland-länksamling/page2  
Föregående sida: https://www.webforum.nu/amne/asp/13303-sökmotor-bland-länksamling.md
