Avatar billede tzag_dk Nybegynder
16. april 2005 - 14:40 Der er 7 kommentarer og
1 løsning

Menu i levels

Hej

Jeg har lavet en database struktur der er bygget op til at håndtere en menu styring i flere levels.

siteID | pID | name

siteID er et unik id.
pID er parrent id.
name er navnet


Jeg har ikke rigtig kunne finde ud af at lave et system til at liste det.
Er der nogle der kan hjælpe?

På forhånd tak :o)
// Rene
Avatar billede hiks Nybegynder
16. april 2005 - 18:58 #1
prøv at forklar hvad det er du ligger i ordene "liste det"? er det selve database udtrækket til (og i så fald hvilken type database) eller er det det at vise dem på siden?

/hiks
Avatar billede slashdotdoek Nybegynder
16. april 2005 - 19:03 #2
Tja.... Jeg er usikker på hvordan du vil have det udskrevet så jeg udskriver det bare med den struktur jeg tænker på:

----
'Jeg finder lige parents:

sql1 = "SELECT SiteID FROM IndsaetNavnPaaTabel WHERE SiteID IN (SELECT pID FROM IndsaetNavnPaaTabel)"
Set rs1 = dbObj.Execute(sql1)
Do while not rs1.EOF
Response.Write "<p><h1>"&rs1("SiteID")&"</h1><br>"
'Jeg bruger det fundne siteID til at liste undermenuerne
sql2 = "SELECT SiteID FROM IndsaetNavnPaaTabel WHERE SiteID ='"&rs1("SiteID")&"'"
Set rs2 = dbObj.Execute(sql2)
Do while not rs2.EOF
  Response.Write "<h2>"&rs2("SIteID")&"</h2><bR>"
  rs2.MoveNext
  Loop
rs1.MoveNext
Loop
----

Syntaksen til netop din db gik vist lidt stærkt men jeg håber at du kan bruge den alligevel. Hvis du bare vil skrive dem ud, kan du jo anvende <ul> og <li> hvis du vil have det lidt pænere. Hvis du vil bruge dem til menuer, så lav de sætninger med Response.Write helt om.

Hygge!
Avatar billede hiks Nybegynder
16. april 2005 - 19:09 #3
ja og jeg sidder og tænker på din database:

SQL = "SELECT a.siteID , a.pid, a.name " & _
      "FROM menutabel a LEFT JOIN menutabel b ON a.siteID = b.pid " & _
      "ORDER BY a.siteID, b.pid;"
'åbn dit recordset
rs.open sql, connectionsstring '<--- sæt din connection osv. ind her

While rs.EOF = False
  if rs("pid") = 0 then
      Response.Write rs("name") & "<br>"
  else
      Response.Write "- " & rs("name") & "<br>"
  end if
  rs.movenext
Wend

/hiks
Avatar billede tzag_dk Nybegynder
16. april 2005 - 19:51 #4
Hej

Undskyld at jeg først skriver nu.
Det er noget af det rigtige I er inde på, men det er en menu med links.
Dvs. at den først skal liste sådan her:

forside
info

Hvis man klikker på info og der næst på link1 skal den fx vise det sådan her:

forside
info
  link1
    underlink1
    underlink2
  link2

Håber at det var en bedre forklaring :o)
Avatar billede slashdotdoek Nybegynder
16. april 2005 - 21:43 #5
Sæt <a href...> tags ind i min loop :-)
Avatar billede tzag_dk Nybegynder
18. april 2005 - 09:49 #6
hej igen slashdotdoek >>

Din lister alle sammen på én gang. Det skal den ikke, den skal først vise et under link når man klikker på et hoved link.
Du må lige sige til hvis du ikke er med på hvad jeg mener.
Avatar billede tzag_dk Nybegynder
19. april 2005 - 11:15 #7
Er der nogen??
Avatar billede tzag_dk Nybegynder
25. april 2005 - 13:53 #8
Lukker... :o(
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