sub tree(connection,parentid,level)
dim rs
set rs = connection.execute("select l_id,l_linktext, l_linkurl from tbl_links where parentid = " & parentid)
while not rs.eof
response.write replace(spaces(level)," ","-") & ">" & rs(1) & " " & rs(2) & "<br>"
tree connection,rs(0),level+1
rs.movenext
wend
end sub
Beror väl på. Det sägs att om man har en väldigt hög belastning så kan man tjäna på att inte återanvända. Det är nog ganska många faktorer som spelar in.
Ahaaaa. Nu kanske jag förstår vad du menar.
Du vill jämföra parentID med det från posten innan.
Skulle de vara olika vill du skriva ut en extra rad i ditt javascriptscript?
Tillfälliga variablar känns som en god vän i dessa sammanhang, utifrån min ovanstående sql-sats.
dim sql, i, tmpParent
tmpParent = "0"
sql = "select * from tbl_links order by l_parentid asc, I_id asc"
set rs = conn.execute(sql)
i = 1
do until rs.eof
if not tmpParent = "0" then
' Inte första raden
if tmpParent = rs("l_parentId") then
' Den här posten tillhör samma parentId som posten innan
' Så den kan man kanske bara skriva ut
else
' Denna post tillhör ett nytt parentId
' Här kanske vi lägger in en ny [i]new submenu[/i] samt skriver ut posten
end if
else
' Whohooooo Första raden!
' Lägga in vår [i]myMenu = new mainMenu('#FFFFFF', '#DFDFDF');[/i] här kanske?
end if
i = i - -1
tmpParent = rs("l_parentId")
rs.moveNext
loop
Nu har jag lagt med en i-variabel som adderar 1 för varje loop. Du kan styra dess värde att överensstämma med det tal du behöver i new subMenu('1', '#F...
Kvarstår nu ett problem...
Om det nu skall skrivas ut en submeny så skall även "positionen" anges.
(1)Båtar
(2)Bilar
(3)Flyg
Om det nu skall vara en submeny till "Bilar" så skall submenyn börja med 2
Är det sedan fler submenyer så skall det hela separeras med ett "i" med efterföljande position i submenyn. osv.
Tips?
Du kan ju stoppa in fler räknarvariabler.
subI som nollställs varje gång du byter submeny.
subICount som adderas + 1 för varje gång du byter submeny t.ex.
Vet inte riktigt hur du vill ha det men du har ju if-satserna klara i loopen för att styra flera olika variabler och räkna hur du vill egentligen.
Ok, här är ett exempel.
Jag har skrivit ut menyordningen(som även finns i källan).
Jag har lite svårt att få till submenyerna, antar att det inte är helt lätt...
Ok, jag skippar denna variant.
Tillbaka till ruta 1:
Går det med LarsG:s sub...
sub tree(connection,parentid,level)
dim rs
set rs = connection.execute("select l_id,l_linktext, l_linkurl from tbl_links where parentid = " & parentid)
while not rs.eof
response.write replace(spaces(level)," ","-") & ">" & rs(1) & " " & rs(2) & "<br>"
tree connection,rs(0),level+1
rs.movenext
wend
end sub
...att skapa ett litet system för att skriva ut hierarkien dynamiskt?
(Alltså så att det fetmarkerade skrivs ut.)
ex.