16. september 2003 - 07:34
Der er
18 kommentarer og 1 løsning
Tælle niavu dybde
Min database NAV_PKEY = Autonummering NAV_PARENT = Tal Når jeg opretter en ny kategori får denne NAV_PARENT = 0 Den kategori jeg oprettede fik så NAV_PKEY = 10 Hvis jeg så opretter en under kategori til denne får den NAV_PARENT = 10 Det jeg gerne vil finde ud af er hvor mange underkategorier der er i en kategori. Hvordan kan man tælle det ??
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
16. september 2003 - 08:08
#1
Node = 10 SQL = "SELECT count(*) AS Antal WHERE NAV_PARENT=" & Node set rs = Conn.Execute(SQL) Response.Write(rs("Antal"))
16. september 2003 - 10:57
#2
Nej det vil ikke virke se lige her Over kategori / NAV_PKEY = 1 og NAV_PARENT = 0 Sub kategori / NAV_PKEY = 2 og NAV_PARENT = 1 Sub i Sub / NAV_PKEY = 3 og NAV_PARENT = 2 Håber du forstår
16. september 2003 - 11:25
#3
Du vil også tælle "børn af børn"? Så prøv med: Node = 10 Antal = CountSubNoder(Node) function CountSubNoder(Node) SQL = "SELECT * WHERE NAV_PARENT=" & Node set rs = Conn.Execute(SQL) Antal = 0 do while not rs.eof Antal = Antal + CountSubNoder(rs("NAV_PKEY")) rs.MoveNext loop CountSubNoder = Antal end function
16. september 2003 - 11:38
#4
tester lige
16. september 2003 - 11:42
#5
Jeg prøvede det her men fik en fejl set rs = connect.Execute("Select * FROM navigation_menu") if not rs.EOF then Do until rs.EOF Node = rs("NAV_PKEY") Antal = CountSubNoder(Node) function CountSubNoder(Node) SQL = "SELECT * WHERE NAV_PARENT=" & Node set rs = Conn.Execute(SQL) Antal = 0 do while not rs.eof Antal = Antal + CountSubNoder(rs("NAV_PKEY")) rs.MoveNext loop CountSubNoder = Antal end function rs.MoveNext Loop else response.write "ingen felter" end if fejlen var Microsoft VBScript compilation error '800a03ea' Syntax error /willesen.dk/www/admin/test.asp, line 9 function CountSubNoder(Node)
16. september 2003 - 11:46
#6
nej stop jeg kager lige i det
16. september 2003 - 11:48
#7
Hvis jeg kører dette <% set connect = server.createobject("ADODB.Connection") Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("database/rcm.mdb") Node = 1 Antal = CountSubNoder(Node) function CountSubNoder(Node) SQL = "SELECT * From navigation_menu WHERE NAV_PARENT=" & Node set rs = Connect.Execute(SQL) Antal = 0 do while not rs.eof Antal = Antal + CountSubNoder(rs("NAV_PKEY")) rs.MoveNext loop CountSubNoder = Antal end function response.write Antal %> giver den 0 lige meget hvilket NAV_PKEY jeg sætter ind
16. september 2003 - 11:56
#8
oki har dette men det giver heller ikke noget brugbart men det giver heller ikke fejl function CountSubNoder(Node) SQL = "SELECT * From navigation_menu WHERE NAV_PARENT=" & Node set rs = Connect.Execute(SQL) Antal = 0 do while not rs.eof Antal = Antal + CountSubNoder(rs("NAV_PKEY")) rs.MoveNext loop CountSubNoder = Antal response.write Antal &"<br>" end function set rsx = connect.Execute("Select * FROM navigation_menu") if not rsx.EOF then Do until rsx.EOF Node = rsx("NAV_PKEY") Antal = CountSubNoder(Node) CountSubNoder(Node) rsx.MoveNext Loop else response.write "ingen felter" end if
16. september 2003 - 11:58
#9
Hmm, det kan godt være at vi lige skal deklarere variablene inden i funktionen sådan at de bliver lokale i stedet for globale: function CountSubNoder(Node) dim SQL, rs, Antal SQL = "SELECT * From navigation_menu WHERE NAV_PARENT=" & Node set rs = Connect.Execute(SQL) Antal = 0 do while not rs.eof Antal = Antal + CountSubNoder(rs("NAV_PKEY")) rs.MoveNext loop CountSubNoder = Antal end function
16. september 2003 - 12:31
#10
Hey nielle >> Nu har jeg dette og det kører uden at give fejl, men resultatet er bare en række 00000000000000000000 hvis der er 10 poster i databasen kómmer der 10 "0" ud. function CountSubNoder(Node) dim SQL, rs, Antal SQL = "SELECT * From navigation_menu WHERE NAV_PARENT=" & Node set rs = Connect.Execute(SQL) Antal = 0 do while not rs.eof Antal = Antal + CountSubNoder(rs("NAV_PKEY")) rs.MoveNext loop CountSubNoder = Antal end function set rsx = connect.Execute("Select * FROM navigation_menu") if not rsx.EOF then Do until rsx.EOF Node = rsx("NAV_PKEY") Antal = CountSubNoder(Node) CountSubNoder(Node) response.write Antal &"<br>" rsx.MoveNext Loop else response.write "ingen felter" end if
16. september 2003 - 12:45
#11
function CountSubNoder(Node) dim SQL, rs, Antal SQL = "SELECT * From navigation_menu WHERE NAV_PARENT=" & Node set rs = Connect.Execute(SQL) Antal = 0 do while not rs.eof Antal = Antal + 1 ' Den her linje er vist ret vigtig ;^) Antal = Antal + CountSubNoder(rs("NAV_PKEY")) rs.MoveNext loop CountSubNoder = Antal end function
16. september 2003 - 12:47
#12
ja det må vi nok sige den er hehe
16. september 2003 - 12:51
#13
det virker egentlig fint nu men resultatet viser kun hvor mange børn en nøgle har. Jeg ville gerne have: Over kategori / NAV_PKEY = 1 og NAV_PARENT = 0 Sub kategori / NAV_PKEY = 2 og NAV_PARENT = 1 Sub i Sub / NAV_PKEY = 3 og NAV_PARENT = 2 Sub i Sub / NAV_PKEY = 4 og NAV_PARENT = 3 Så har NAV_PKEY 1 jo 3 sub dir
16. september 2003 - 12:52
#14
Takker points. :^)
16. september 2003 - 12:52
#15
du har ikke smidt et svar endnu :ø))
16. september 2003 - 12:57
#16
Dette her spørgsmål er lukket - der kan hverken lægges flere svar eller gives flere points. Jeg mente nu heller ikke at jeg ville have flere points - jeg takkede for dem jeg havde fået (der manglede dog et "for").
16. september 2003 - 13:00
#17
NAV_PKEY = 1 Response.Write CountSubNoder(NAV_PKEY) - burde ellers give 3 som du ønsker
16. september 2003 - 13:04
#18
Hey Nille hvad er der lige galt med dette sp da jeg ikke har nogen boks så jeg kan give dig point ?????
16. september 2003 - 13:04
#19
nåår jeg skulle bare kikke længere op
Kurser inden for grundlæggende programmering