05. december 2008 - 12:55Der er
6 kommentarer og 1 løsning
Dynamisk side-hieraki gemt i en tabel
Hej
Jeg skal lave et dynamisk side-hieraki på et website, som er lavet helt simpelt:
Siderne gemmes i en enkelt SQL-tabel med ID og PARENT_ID.
Siden er en top-side hvis PARENT_ID er null. Ellers ligger den som under-side til siden, der svarer til PARENT_ID.
Mit problem er hvordan jeg får trukket alle disse værdier ud af databasen i den korrekte rækkefølge. Der vil jo være undersider til undersider - og undersider til dem. Man ved ikke hvor mange niveauer der er - det kan være 2, 5 eller 10.
"SELECT Level, Node, Parent FROM Node_Tabel ORDER BY Level, Node, Parent;"
Jeg kender godtnok ikke noget til PHP, men måske andre kan oversætte det hvis du ikke kan?
<% SET Conn = Server.CreateObject("ADODB.Recordset") Conn.Open("Din_Connection_String") SET RS = Server.CreateObject("ADODB.Recordset") SQL = "SELECT Level, Node, Parent FROM Node_Tabel ORDER BY Level, Node, Parent;" RS.Open SQL, Conn IF NOT RS.EOF THEN DO UNTIL RS.EOF padding = "" FOR i = 1 TO RS("Level") padding = padding & "--" NEXT Response.Write(padding & "Level: " & RS("Level") & ", Node: " & RS("Node") & ", Parent: " & RS("Parent") & "<br />") RS.MoveNext LOOP END IF RS.Close SET RS = nothing Conn.Close SET Conn = nothing %>
skal erstattes af noget logik der fordeler det hele i de korrekte tabeller / divs på siden. Ovenstående vil udskrive det som Level: #, Node: #, Parent # --Level: #, Node: #, Parent # --Level: #, Node: #, Parent # ----Level: #, Node: #, Parent # ----Level: #, Node: #, Parent # --Level: #, Node: #, Parent # Level: #, Node: #, Parent # --Level: #, Node: #, Parent # ----Level: #, Node: #, Parent #
Håber det kan give et lille indblik i hvordan det _kan_ gøres. Der er sikkert bedre måder, men ovenstående har virket for mig på arbejde, omend den måske ikke er gengivet 100% korrekt.
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.