---
title: "Få ett \"trädsystem\""
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/76597-få-ett-trädsystem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Mannen"
published: "2003-05-11T11:19:48.000Z"
updated: "2003-05-11T13:35:20.000Z"
replies: 1
views: 299
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/76597-få-ett-trädsystem"
---

# Få ett "trädsystem"

## #1 — Mannen, 2003-05-11T11:19Z

Har haft problem med att skapa ett trädsystem i min meny.
Den ska lista flera undermenyer och även visa de undermenyer som ligger kvar i undermenyn.

Jag har en kod som ser ut så här:

```php
<%
Set RecSet2=Server.CreateObject("ADODB.Recordset")
Set RecSet3=Server.CreateObject("ADODB.Recordset")

'## Här öppnar vi scriptets första RecordSet    
Set RS = Connect.Execute("Select * From tblMenu ORDER By namn")
'## Vi kollar om Recordsetet, menyn är tom, isåfall, skriver vi ut "Tomt"
If RS.EOF Then
  Response.Write "<tr><td>Tomt</td></tr>" 
Else
'## Vi loppar fram menykategorierna
Do Until RS.EOF
Id = RS("ID")
Namn = RS("Namn")

IF CStr(Id)=Request.QueryString("ID") then
%>

<A HREF="meny.asp?ID=""><%=Namn%></a><br>

<%
strSQL="SELECT * FROM tblLevelMenu WHERE refID="& Request.QueryString("ID") &" AND Level="& Request.QueryString("Level")+1 &" ORDER BY Namn"
Set RecSet2=Connect.Execute(strSQL)

Do Until RecSet2.EOF

strSQL="SELECT * FROM tblLevelMenu WHERE refID="& Request.QueryString("ID") &" AND Level="& Request.QueryString("Level")+1 &" ORDER BY Namn"
Set RecSet3=Connect.Execute(strSQL)
if RecSet3.EOF=true then
%>

-<A href="list.asp?kategori=<%=Id%>&subkategori=<%=Request.QueryString("Level")%>"><%=RecSet2("Namn")%></a><br>
<% else %>
-<A href="meny.asp?ID=<%=Id%>&Level=<%=Request.QueryString("Level")+1%>"><%=RecSet2("Namn")%></a><br>
<%end if%>

<%
  RecSet2.MoveNext  
  Loop
ELSE
%>
<A href="meny.asp?ID=<%=Id%>&Level=1"><%=Namn%></a><br>
<%
END IF

  RS.MoveNext  
  Loop
End If%>
```

Klaga inte på kodningen, inte jag som har gjort hela.

Men problemet är att den inte visar de gamla undermenyerna i undermenyerna.

Så här blir menyn...

Första visningen: 

Test1 
Test2 
Test3 

När man klickat på Test3: 

Test1 
Test2 
Test3 
\-Under3 

Men när mansedan klickar på Under3 så försvinner Under3 och då visas bara de understa undermenyerna: 

Test1 
Test2 
Test3 
\-Under32 
\-Under32 
\-Under32

Detta är ett stort problem för mig.

Jag har kollat i gamla trådar och kom fram till denna funktion som jag prövade.

```php
<!-- #Include file="dbcon.asp"-->
<%

Set RS=Server.CreateObject("ADODB.Recordset")

Function printTree(intCatId)

  strSQL = "SELECT * FROM Menu WHERE ParentID="& intCatId &" Order by Namn"
  Set RS = Connect.Execute(strSQL)
  
  if RS.EOF then
    'Denna kategori hade inga under kategorier, så därför görs ingenting, och vi hoppar upp ett steg i rekursiviteten
  else
  
      do while not RS.EOF
      
           'Skriva ut Namnet, och sedan kallar på denna funktionen för att skiva ut alla under kategorier till innevarande kategori
           Response.write(RS("Namn"))&"<br>"

           Call printTree(RS("CategoryID"))

           
      RS.MoveNext
      Loop
      
  end if
End Function

%>

<html>
<head>

<%=printTree(0)%>

<%
RS.Close
Set RS=Nothing
Connect.Close
Set Connect=nothing
%>
```

Men när jag kör denna får jag att det är för lite minne vid connect.execute

Antar att den loopar alldeles för mycket.

Kommer från denna tråd
<http://www.webforum.nu/showthread.php?s=&postid=543816#post543816>

Snälla hjälp mig, behöver verkligen få detta att fungera

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

## #2 — mrblonde, 2003-05-11T13:35Z

r) det var inget, för trött, ingnorera mig

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/76597-få-ett-trädsystem
