---
title: "Skriv ut under-menyer..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/82963-skriv-ut-under-menyer"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "voigtann1"
published: "2003-07-29T07:32:05.000Z"
updated: "2003-08-13T10:05:44.000Z"
replies: 60
views: 1129
page: 1
pages: 4
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/82963-skriv-ut-under-menyer"
---

# Skriv ut under-menyer...

_Sida 1 av 4._

## #1 — voigtann1, 2003-07-29T07:32Z

```
<%
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?

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

## #2 — Jaar, 2003-07-29T08:23Z

Menar du att du har en till undermeny?

```
<%
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

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

## #3 — voigtann1, 2003-07-29T08:27Z

jag har tänkt mig mer än tre ja... :e

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

## #4 — Gladh, 2003-07-29T09:27Z

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>

\- M

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

## #5 — voigtann1, 2003-07-29T09:37Z

jag gjorde något innan:

```
<%
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...

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

## #6 — Macce, 2003-07-29T10:24Z

kolla mitt skript i  [skriptarkivet](http://www.webforum.nu/showthread.php?s=&threadid=76224&forumid=148) här på Wf :)

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

## #7 — voigtann1, 2003-07-29T10:27Z

Måste gå att fixa med mindre kod än den som finns på wF akrivet

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

## #8 — Macce, 2003-07-29T10:29Z

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 :)

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

## #9 — voigtann1, 2003-07-29T10:36Z

Hmm.. låter bra.. kan du ge mig de minsta koderna? :e är för lat idag.. för mycket i huvudet :e

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

## #10 — Macce, 2003-07-29T11:13Z

Är nog bättre att du experimenterar och förstår koden och tweakar den efter eget behov ;)

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

## #11 — Gladh, 2003-07-29T11:17Z

Din kod är ju nästan färdig.

> \<%
> 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.

\- M

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

## #12 — voigtann1, 2003-07-29T12:29Z

jag har tänkt mig större menyer... så all ny kod är välkommen

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

## #13 — voigtann1, 2003-08-03T19:42Z

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....

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

## #14 — voigtann1, 2003-08-10T07:44Z

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..

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

## #15 — @nders, 2003-08-10T07:55Z

Ja, det låter väl som ett bra lösningsförslag?

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

## #16 — voigtann1, 2003-08-10T16:54Z

Blir inte koden himla seg att ladda?

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

## #17 — @nders, 2003-08-10T16:55Z

Seg jämfört med vad?

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

## #18 — voigtann1, 2003-08-10T16:57Z

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.

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

## #19 — @nders, 2003-08-10T16:59Z

Om frågan är "blir det segare att ställa 32432 SQL-frågor än 1?" så är svaret ja. Är frågan den omvända så är svaret nej.

Jag förstår inte frågan, men du kan säkert finna svaret när du provar. :D

Mvh

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

## #20 — voigtann1, 2003-08-10T17:01Z

Jag ska testa imorgon.. återkommer med resultat + koder (om det fungera)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/82963-skriv-ut-under-menyer  
Nästa sida: https://www.webforum.nu/amne/asp/82963-skriv-ut-under-menyer/page2.md
