id parentid name 1 0 Hej --> rod-element, dvs. parentid = 0 2 0 Ny side --> også et rodelement 3 2 Underside --> under ny side, dvs. parentid = 2 osv.
Du kan lave en rekursiv procedure, der udskriver alle elementer:
Sub writeElements(pid,level) Dim rs, strSql strSql = "SELECT * FROM table WHERE parentid=" & pid Set rs = Conn.Execute(strSql) If Not rs.Eof Then Do While Not rs.Eof Response.Write "<div style=""margin-left:" & 15 * level & "px"">" Response.Write rs("name") Response.Write "</div>" WriteElements rs("id"), level + 1 'udskriv alle elementer under dette rs.MoveNext Loop End If rs.Close Set rs = Nothing End Sub
Kald proceduren sådan her:
<body> <% Dim Conn Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sti_til_din_db writeElements 0,0 Conn.Close Set Conn = Nothing %> </body>
Synes godt om
Slettet bruger
16. august 2003 - 11:48#2
kommer den ikke til at åbne rs flere gange oven i hinanden?
men det bliver et nyt rs da rs er dim'et inde i funktionen. Det er meniungen den hendter data fra db til hver gren.
Synes godt om
Ny brugerNybegynder
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.