---
title: "Sökväg ala forum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/58495-sökväg-ala-forum"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "per-v"
published: "2002-11-09T03:09:50.000Z"
updated: "2002-11-11T09:58:22.000Z"
replies: 7
views: 276
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/58495-sökväg-ala-forum"
---

# Sökväg ala forum

## #1 — per-v, 2002-11-09T03:09Z

God kväll/morgon!

Ok, det här kanske är en jävligt kryptisk fråga, men nu är jag för trött för att tänka själv... 

Jag skulle vilja ha en "sökvägs funktion" som brukar finnas på dom flesta forumen, typ:

```
webForum > Webbrelaterade forum > Webbutveckling > ASP, VBScript
```

Låt säga att min DB ser ut på följande sätt:

```
------------------------------------
| ID | subID | title     | txt     |
------------------------------------
| 1  | 0     | Startsida | Bla bla |
------------------------------------
| 2  | 1     | Om        | Bla bla |
------------------------------------
| 3  | 1     | Kontakt   | Bla bla |
------------------------------------
| 4  | 2     | Adresser  | Bla bla |
------------------------------------
```

Värdet i "subID" är vilken kategori den posten tillhör. Så i detta fall är alltså "Adresser" en undersida till "Om". Så sökvägen ska se ut som nedan:

```
Startsida > Om > Adresser
```

Kan man bygga en funktion som skriver ut en sökväg av ovanstående typ av denna DB struktur?

Tacksam för all hjälp!

Nej, nu är det fan läge för Mr. Blund att dyka upp!

God natt!

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

## #2 — Eitraz, 2002-11-09T21:24Z

Har INTE testat det här och den är nog ganska krävande, men kul rekursiv kodning :D

function kategori(ID)
  subID = 0
  SQL = "SELECT ID,subID FROM databas WHERE ID = " & ID
  Set RS = Connect.Execute(SQL)
    If Not RS.EOF Then
      subID = RS("subID")
    End If
  Set RS = Nothing

  If subID \> 0 Then
    kategori = " OR ID = " & ID" & kategori(subID)
  Else
    kategori = " OR ID = " & ID
  End If
end function

WHR = kategori(4)

SQL = "SELECT ID,subID,title FROM databas WHERE ID = 0" & WHR & " ORDER BY subID"
Set RS = Connect.Execute(SQL)
  Do Until RS.EOF
    %\> \> \<%=RS("title")%\>\<%
  RS.MoveNext
  Loop
Set RS = Nothing

' Sätter ID = 0 i where endast för att WHR börjar med OR ;)

Meddela gärna om det funkade eller inte ;)

\-Eitraz

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

## #3 — Eitraz, 2002-11-10T11:09Z

Hmm.. kanske var lite onödigt det där.. 
om du använder det där, lägg så den skriver ut direkt i funktionen istället så slipper man ju den sista SQL-grejen ;)

\-Eitraz

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

## #4 — per-v, 2002-11-11T08:08Z

Tack!

Ska prova det under dagen och återkommer med resultatet...

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

## #5 — per-v, 2002-11-11T09:25Z

Fan vad bra det funkar!

```
Function catPath(id)
	Set Con = Server.CreateObject("ADODB.Connection")
	Set rs	= Server.CreateObject("ADODB.Recordset")
	Con.Open DBPATH

	pathSubID = 0
	SQL = "SELECT ID, subID FROM content WHERE ID = " & id
	rs.Open SQL, Con

		If NOT rs.EOF Then
			pathSubID = RS("subID")
		End If

	rs.Close

	If pathSubID > 0 Then
		catPath = " OR ID = " & id & "" & catPath(pathSubID)
	Else
		catPath = " OR ID = " & id
	End If

	SQL = "SELECT id, subID, title FROM content WHERE ID = 0 " & catPath & " ORDER BY subID"
	rs.Open SQL, Con

		Do While NOT rs.EOF

			rsID    = rs("id")
			rsTitle = rs("title")

			printContent = ""
			If rsID <> id Then
				printContent = printContent & "<b>&raquo;</b> " & rsTitle & " "
			Else
				printContent = printContent & "<b>&raquo;</b> <a href=""content.asp?subID=" & rsID & """>" & rsTitle & "</a> "
			End If

			rs.movenext
		Loop
		Response.Write printContent

	rs.Close
	Con.Close
	Set rs  = Nothing
	Set Con = Nothing
End Function
```

Jag bugar och bockar och säger tack så **mycket** för hjälpen!

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

## #6 — Eitraz, 2002-11-11T09:30Z

Kul det funkade :D

Men bör inte

**End Function**
ligga efter

	*If pathSubID \> 0 Then
		catPath = " OR ID = " & id & "" & catPath(pathSubID)
	Else
		catPath = " OR ID = " & id
	End If*

? ;)

\-Eitraz

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

## #7 — Eitraz, 2002-11-11T09:33Z

hmm.. föresten.. på sättet du använder funktionen kan det nog funka ändå ja ;)

\-Eitraz

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

## #8 — per-v, 2002-11-11T09:58Z

Hehe... det kanske det borde, men nu funkar det som en klocka så jag vågar inte ändra nått (är inte allt för haj på ASP) ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/58495-sökväg-ala-forum
