Avatar billede marcobjensen Nybegynder
11. marts 2008 - 19:52 Der er 6 kommentarer og
1 løsning

Simpelt menutræ

Hej Eksperter!

Jeg har forsøgt mig med at programmere et simpelt menutræ med kun 2 niveauer, med data hentet fra en MS access database.

Mit ønsker er at menuen skal se således ud

Menupunkt 1
  Underpunkt 1
  Underpunkt 2
Menupunkt 2
Osv.
(Det er kun menupunkterne som indeholder data!)
Min database er bygget op med 2 tabeller.

Én indeholdende menupunkterne med følgende felter:
menuId, menuName, menuPosistion

Og en tabel med undersiderne:
sitesId, sitesName,data,sitesPosition,belongsTo

BelongsTo har relation med menuId

Jeg har forsøgt med en loop med en sql-sætning i. Jeg er gået helt fast og er endt med denne ubrugelige kode:


strSQL = "SELECT menuName, menuPosition, menuId from menu ORDER BY menuPosition"
Set rs = Conn.Execute(strSQL)

response.write rs("menuName")
strSQL2 = "SELECT sites.sitesName, sites.belongsTo FROM sites WHERE (((sites.belongsTo)=" & rs("menuId") & "))"
Set rs = Conn.Execute(strSQL2)
do
response.write "&nbsp;&nbsp;" & rs("sitesName") & "<br />"
rs.movenext
loop while not rs.EOF


Håber nogen vil forsøge at hjælpe mig!
På forhånd tak!
Avatar billede marcobjensen Nybegynder
11. marts 2008 - 19:54 #1
Edit! (Det er kun UNDERpunkterne som indeholder data!)
Avatar billede bobbedude Nybegynder
11. marts 2008 - 20:21 #2
Avatar billede marcobjensen Nybegynder
11. marts 2008 - 21:18 #3
Tak for svaret.. Men synes ikke der er nogen guide til ASP + sql?

Og kan den hjælpe mig med problemstillingen omkring de 2 tabeller som kræver 2 sql sætninger?

//Marco
Avatar billede jansangill Nybegynder
11. marts 2008 - 21:43 #4
på den måde der bliver du nødt til at lave en loop inde i et loop, eller bruge arrays.

I et loop:

strSQL = "SELECT menuName, menuPosition, menuId from menu ORDER BY menuPosition"
Set rs = Conn.Execute(strSQL)
  do while not rs.eof
      response.write rs("menuName")
   
      strSQL2 = "SELECT sites.sitesName, sites.belongsTo FROM sites WHERE (((sites.belongsTo)=" & rs("menuId") & "))"
    Set rs2 = Conn.Execute(strSQL2)
        do while not rs2.eof
            response.write "&nbsp;&nbsp;" & rs("sitesName")
            rs2.movenext
        loop
    rs.movenext
loop
Avatar billede marcobjensen Nybegynder
11. marts 2008 - 21:58 #5
Ja tak. Det ser meget fornuftigt ud. Jeg får dog en fejlmeddelse alligevel

Den skriver fint det første menupunkt, men når den kommer til den første underpunkt skriver den:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/design08/Default.asp, line 33

Linje 33 er:
response.write "&nbsp;&nbsp;" & rs("sitesName")
Avatar billede marcobjensen Nybegynder
11. marts 2008 - 22:05 #6
ahh den skulle hedde rs2("sitesName")

Nu spiller det sq.
Mange tak for hjælpen!
Avatar billede jansangill Nybegynder
11. marts 2008 - 22:33 #7
velkommen:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester