Avatar billede roadrunr Nybegynder
31. januar 2000 - 17:29 Der er 5 kommentarer og
2 løsninger

Kategori-inddeling (loop)

Jeg har en tabel som indeholder en masse poster(kategorier). Nogle af kategorierne er under-kategorier til de andre. Hver kategori har en "ID(autonummerering)" og en "Placering", som fortæller hvilken anden kategori den hører ind under.
Jeg behøver et sript, som han liste alle min kategorier i den rigtige inddeling. F.eks.

Hovedkategori-1
kategori-1.1
  kategori-1.1.1
  kategori-1.1.2
  kategori-1.1.3
  osv...
kategori-1.2
  kategori-1.2.1
  kategori-1.2.2
  osv...
Hovedkategori-2
kategori-2.1
osv...

Den skal blive ved med at checke om der er flere underkategorier. Hvis der ikke er nogen - skal den automatisk gå videre. Det skal virke samme samme måde som man ser med forums og newsgroups.

Håber jeg modtager nogle gode forslag.
Avatar billede lundholm Nybegynder
31. januar 2000 - 17:37 #1
Hejsa - først lidt teori!

Du skal lave en rekursiv funktion som kan kalde sig selv hele tiden. Forestil dig, at dine børn peger på en forælder (med et id). Dette vil give dig mulighed for at vælge alle børnene ud i et recordset ved at spørge 'efter børn der har 'mit eget id' som fader.

Jeg har noget uddybende kode liggende, men det er sjovere selv at finde ud af tingende. Hvis ikke dette er ledetråd nok, så skriv igen.
Avatar billede roadrunr Nybegynder
31. januar 2000 - 17:47 #2
Jo tak. Jeg forstår godt selv det meste af princippet i det du forklarer, og jeg har også selv prøvet de sidste par uger - men uden held. jeg går ligsom i stå, når den skal gentage loopet x*antal gange.

Så derfor vil jeg helst give mine point til den som kommer frem med fuldstændig løsning på hvordan dette gøres.
Avatar billede theill Nybegynder
31. januar 2000 - 22:02 #3
Jeg har lavet et online bookmark system, hvor det er muligt at oprette (og dermed vise) grupper i grupper (eller kategorier i kategorier om du vil).

Al source-koden er frit tilgaengelig lige her: http://www.theill.com/files/marks.zip

Hvis du vil se en demo af systemet, kan du springe paa: http://www.theill.com/ConquerMarks/
Avatar billede roadrunr Nybegynder
31. januar 2000 - 22:19 #4
theill: Jo det var såmen meget fint, men alt for uoverskuelig og avenceret i forhold til det jeg skal bruge det til. Jeg vil lige vente for at se om der skulle dukke noget bedre op, for derefter også at smide nogle point af til dig.
Avatar billede ortrak Nybegynder
01. februar 2000 - 00:50 #5
Her er et eksempel. Hvis replyid er 0, så er det en hovedkategori. Ethvert andet tal henviser til en post hvor id er lig tallet.

/ortrak

<%
Function ShowReplies(id, conn)
  SQL = "select * FROM Table1 where REPLYID=" & id & " order by ID"
    Set RS=Conn.Execute(sql)
    If not rs.eof then
    response.write "<ul>"
   
    do while not rs.eof
        response.write "<li>" & rs("subject")
        Call ShowReplies(rs("id"),conn)
        rs.movenext
    loop
   
    response.write "</ul>"
    End if
   
    rs.close
    set rs=nothing
   
End Function
%>

<%

  Set Conn=Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
  SQL="select * from Table1 where replyid=0" & " ORDER BY ID"
  Set MainRS=Conn.Execute(SQL)

      do while not MainRs.Eof

        response.write MainRs("subject")
        Call ShowReplies(MainRS("id"),conn)

    MainRs.movenext
    Loop
   
    Mainrs.close
    conn.Close
    set mainrs=nothing
    set conn=nothing
%>
Avatar billede roadrunr Nybegynder
01. februar 2000 - 12:27 #6
ortak: Jeg takker mange gange for hjælpen. Det var lige præcis hvad jeg skulle bruge.
Avatar billede ortrak Nybegynder
01. februar 2000 - 18:34 #7
Det var så lidt.

/ortrak
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