<%
SQL = "Select * from menu where link=0"
set recset = databas.execute(SQL)
do until recset.eof
response.write recset("namn")&"<br>"
SQL = "SELECT * from menu where link=" &recset("id")
set recset2= databas.execute(SQL)
do until recset2.eof
response.write "--"&recset2("namn")&"<br>"
recset2.movenext
loop
recset.movenext
loop
%>
Detta är ju en snabb kod för att skriva ut 1 under rubrik... hur gör jag en kod som skriver ut under rubrik på under rubriken?
<%
SQL = "Select * from menu where link=0"
set recset = databas.execute(SQL)
do until recset.eof
response.write recset("namn")&"<br>"
SQL = "SELECT * from menu where link=" &recset("id")
set recset2= databas.execute(SQL)
do until recset2.eof
response.write "--"&recset2("namn")&"<br>"
SQL = "SELECT * from menu where link=" &recset2("id")
set recset3= databas.execute(SQL)
do until recset3.eof
response.write "----"&recset3("namn")&"<br>"
recset3.movenext
loop
recset2.movenext
loop
recset.movenext
loop
%>
Dock skulle jag göra det hela som en funktion som hämtar ett recordset under den aktuella menyn... då skulle du kunna ha hur många led i menyn som helst... nu blir det ju bara 3 istället för 2
Det diskuteras just nu på eforum.idg.se där jag skrev ett långt inlägg om rekursivitet som är lösningen på ditt problem. Så kolla ASP & VBScript på http://eforum.idg.se
<%
function menu(ID)
SQL = "SELECT * FROM menu WHERE LINK = " & ID
set Rs = databas.execute(SQL)
Do until Rs.eof
response.write "--" &Rs("Namn") &"<br>"
Rs.movenext
loop
rs.close : set recset = nothing
end function
SQL = "Select * from menu where link=0"
set recset = databas.execute(SQL)
do until recset.eof
response.write recset("namn")&"<br>"
response.write menu(recset("ID"))
recset.movenext
loop
%>
Nu finns ju det i en funktion.. men som sagt.. inget speciell kod :(
fick inte din kod att köra på min databas riktigt...
Det går att få den med mindre kod om du tar bort formatteringar etc...
Som den fungerar nu så markeras ju aktiv länk med bild m.m. ta bort det och du kommer ner i storlek.
Med denna lösning används bara en db-hämtning med getrows.
Arrayn kan du sen lagra i en application, så slipper du prata med db:n och får en supersnabb meny :)
<%
function menu(ID)
SQL = "SELECT * FROM menu WHERE LINK = " & ID
set Rs = databas.execute(SQL)
Do until Rs.eof
response.write "--" &Rs("Namn") &"<br>"
Rs.movenext
loop
rs.close : set recset = nothing
end function
SQL = "Select * from menu where link=0"
set recset = databas.execute(SQL)
do until recset.eof
response.write recset("namn")&"<br>"
response.write menu(recset("ID"))
recset.movenext
loop
%>
Din funktion behöver bara kalla på sig själv efter det att den skrivit ut menynsnamn så här.
<%
function menu(ID)
SQL = "SELECT * FROM menu WHERE LINK = " & ID
set Rs = databas.execute(SQL)
Do until Rs.eof
response.write "--" &Rs("Namn") &"<br>"
menu(oRs("ID"))
Rs.movenext
loop
rs.close : set recset = nothing
end function
%>
Nu har du fått en rekursiv funktion. Men som sagts tidigare det blir betydligt snabbare att hämta allt på en gång med endast 1 databasanrop. Men för små menyer fungerar detta jättebra.
jag fick aldrig till det som jag vill... jag ska ha en select box som ska se ut så här:
<select>
<option value="2">Gästbok</option>
<option value="3">--Skriv gästboksinlägg</option>
<option value="4">--Kolla gästbok</option>
<option value="5">----sida 2</option>
<option value="1">Forum</option>
</select>
ungefär.. så man vet vad som tillhör var....
har fortfarande ingen susning om hur detta ska lösas... kanske man ska order by link,id och köra en kontroll if link = id then response.write "--" av något slag..
Tja... getrows() saken till exempel.. jag vill ju ha hela min meny lista så folk kan lägga till fler underrubriker (på mitt sätt) :e och där använder jag inte getrows utan bara select * from ... where link = 3 tex.