Avatar billede bobbedude Nybegynder
12. september 2003 - 09:54 Der er 10 kommentarer og
1 løsning

Tælle niavu fra kategorier

Database

Nav_Pkey = autonummereret felt
Nav_Parent = tal

Hvergang man opretter en ny kategori og denne er en over kategori får den parent = 0

Jeg har så en kategori med
Nav_Pkey = 1 og parent = 0
under den laver jeg en ny kategori som får
Pkey = 2 og parent = 1

Sådan fortsætter det så der ud af.

Hvordan kan jeg tælle hvormange sub kategorier der er under en over kategori ??
Avatar billede the_bma_man Nybegynder
12. september 2003 - 10:28 #1
Du er nok nødt til at opbygge en eller anden form for træstruktur, og så tælle den op bagefter.
Avatar billede bobbedude Nybegynder
12. september 2003 - 10:36 #2
jeg kan sagtens tælle hvis der kun er

--Over kategori
---Sub Kategori

men ikke hvis det er

--Over kategori
---Sub Kategori
----Sub under sub
Avatar billede bobbedude Nybegynder
12. september 2003 - 10:43 #3
jeg har lavet:

Set rs = Connect.Execute("SELECT * FROM navigation_menu Where NAV_PARENT = 0")

if not rs.EOF then
do until rs.EOF

response.write "<b>Start - "&rs("NAV_PKEY")&"</b><br>"

Set rs2 = Connect.Execute("SELECT * FROM navigation_menu WHERE NAV_PARENT = " & rs("NAV_PKEY") & " ")

if not rs2.EOF then
do until rs2.EOF
Response.Write "&nbsp;&nbsp;Usub - "&rs2("NAV_PKEY")&"<br>"
rs2.MoveNext
Loop
else
Response.Write "Ingen Links i denne kategori!"
end if

rs.movenext
Loop
else
response.write "Ingen felter"
end if

men den tager jo kun den første sub og ikke sub i sub
Avatar billede bobbedude Nybegynder
12. september 2003 - 10:56 #4
oki nu virker det

' Hent data fra databasen
Set rsEntries = Rs.Execute("Select * from navigation_menu")

Do
  ' Gem data som kommasepareret liste
  arrID = arrID & "," & rsEntries("NAV_PKEY")
  arrRE = arrRE & "," & rsEntries("NAV_PARENT")
  arrSU = arrSU & "," & rsEntries("NAV_TITLE")
  rsEntries.MoveNext
Loop while not rsEntries.eof

' Lav arrays med data
arrID = Split(arrID,",")
arrRE = Split(arrRE,",")
arrSU = Split(arrSU,",")

Rs.Close

' Funktion som undersøger for svar
Function Threads(intID)   
  For m = 1 to Ubound(arrID)
    ' Hvis svar til det indlæg som funktionen er kaldt med
    If Cint(arrRE(m)) = Cint(intID) Then
      ' Tilføj til liste og kald funktionen for at undersøge for svar
      Threads = Threads & "<ul><li>" & arrSU(m) & Threads(arrID(m)) & "</li></ul>"   
    End If       
Next
End Function

' Kald funktionen med alle hovedindlæg
Response.Write Threads(0)
Avatar billede bobbedude Nybegynder
12. september 2003 - 10:56 #5
men jeg kan ikke finde ud af at få en tæller ind så jeg kan se hvor mange underkategorier der er ?
Avatar billede the_bma_man Nybegynder
12. september 2003 - 11:03 #6
Du må lade Treads lave en optælling, og så bruge den, når du returnerer fra funktionskaldet.
Avatar billede bobbedude Nybegynder
12. september 2003 - 11:14 #7
yep det ved jeg men hvordan gør jeg ?
Avatar billede the_bma_man Nybegynder
12. september 2003 - 11:50 #8
Function Treads(intID)
strSQL = "Select * from navigation_menu where Nav_Parent = " & intID & ""
Set rsEntries = Rs.Execute(strSQL)
taeller = 1
while not rsEntries.EOF do
  taeller = taeller + Treads(rsEntries("NAV_PKEY")
  rsEntris.Movenext
wend
set rsEntries = NULL
End Function

Den giver dig tallene. Så kan du jo selv opbygge en tekststreng deri, hvis du også skal have teksterne ud.
Avatar billede bobbedude Nybegynder
12. september 2003 - 12:49 #9
the_bma_man >> Hvordan skal jeg lige sætte det ind ?
Avatar billede bobbedude Nybegynder
15. september 2003 - 07:40 #10
halooo
Avatar billede bobbedude Nybegynder
16. september 2003 - 07:28 #11
Luk >>
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel