Avatar billede dontron Nybegynder
15. maj 1999 - 15:02 Der er 4 kommentarer og
1 løsning

Diskutions-forum i ASP

Jeg er igang med et simpelt forum hvor man kan diskutere forskellige ting.
Mit problem er at lave rekursive undergrupper. Dvs:

Hovedgruppe "Biler"
- Undergruppe "Mercedes"
-- UnderUndergruppe "Mekanik"
-- UnderUndergruppe "Reperation"
-- UnderUndergruppe "Brugtvogne"
--- UnderUnderUndergruppe "Køb"
--- UnderUnderUndergruppe "Salg"
- Undergruppe "Porche"
-- UnderUndergruppe "Mekanik"
-- UnderUndergruppe "Reperation"
osv...
Hvordan skal jeg kode det Undergruppe under Undergruppe under Undergruppe under Undergruppe.......

Jeg har SQL tabellerne på plads og ved godt det skal laves som Parent - Child
Men jeg kan altså ikke finde på en smart måde at gøre det på, undtagen at fyre mange hundrede SQL statements af.

Her er min tabel

CREATE TABLE chatBoardGroup (
    GroupName      VARCHAR  (64)  NOT NULL ,  /* Navn på gruppen                      */
    GroupParent    VARCHAR  (64)  NOT NULL ,  /* Navn på overgruppe                  */
    Description      TEXT        NOT NULL ,  /* Beskrivelse af nyhedsgruppen        */
    CONSTRAINT chatGroupName_Key  PRIMARY KEY CLUSTERED     (GroupName)
)

Jeg har også prøvet at lave en heftig array rutine med Dim og ReDim - Meeen den blev totalt rodet og åd memory som var det et nyt MS produkt :-))

Så mon ikke der er en eller anden hardcore superudvikler det har en fix lille løsning i ASP.

- Torben





Avatar billede perhoyer Nybegynder
15. maj 1999 - 15:21 #1
<%
strSQLMessage="Select * from DiscMessages where ThreadId="&ThreadId&";"
set objrecMessages=objConn.Execute(strSQLMessage)
Response.Write "<table border=0 width=390 cellpadding=0>"
   
While not objrecMessages.EOF
MessageId=objRecMessages("MessageId")
    Response.Write "<tr><td><a href='Message.asp?MessageId="&MessageId&"&Thread="&Thread&"&Init="&objRecMessages("strUserInitials")&"' class=Messages>"&objRecMessages("MessageHead")&"</a>"
    Response.Write "<samp class=tinytiny> by: "&objRecMessages("strUserInitials")&", "&FormatDateTime(objRecMessages("SubmissionDate"),VbLongDate)&"</samp>"
   
        strSQLReply="Select ReplyId,MessageId, strUserInitials,SubmissionDate from DiscReply where MessageId="&objRecMessages("MessageId")&";"
        set objRecReply=objConn.Execute (strSQLReply)
        Response.Write "<table border=0 width=370 cellpadding=0 align=right>"
       
        While not objRecReply.EOF
            Response.Write "<tr><td><a href='Reply.asp?MessageId="&MessageId&"&MessageId=&MessageHead="&objRecMessages("MessageHead")&"&ReplyId="&objRecReply("ReplyId")&"&Thread="&Thread&"&Init="&objRecReply("strUserInitials")&"' class=Messages>Reply</a><samp class=tinytiny> by: "&objRecReply("strUserInitials")&", "&FormatDateTime(objRecReply("SubmissionDate"),VbLongDate)&"</samp>"
                strSQLRtoR="Select RtoRId,ReplyId, strUserInitials,SubmissionDate from DiscRtoR where ReplyId="&objRecReply("ReplyId")&";"
                set objRecRtoR=objConn.Execute (strSQLRtoR)
                Response.Write "<table border=0 width=350 cellpadding=0 align=right>"
       
                While not objRecRtoR.EOF
                    Response.Write "<tr><td><a href='RtoR.asp?MessageID="&MessageID&"&MessageHead="&objRecMessages("MessageHead")&"&ReplyId="&objRecReply("ReplyId")&"&RtoRId="&objRecRtoR("RtoRId")&"&Thread="&Thread&"&Init="&objRecRtoR("strUserInitials")&"' class=Messages>Reply</a><samp class=tinytiny> by: "&objRecRtoR("strUserInitials")&", "&FormatDateTime(objRecRtoR("SubmissionDate"),VbLongDate)&"</samp>"
                        StrSQLRRR="Select * from DiscRtoRtoR Where RtoRID="&objRecRtoR("RtoRId")&";"
                        set objRecRRR=objConn.Execute(strSQLRRR)
                        Response.Write "<table border=0 width=330 cellpadding=0 align=right>"
                        While Not objRecRRR.EOF
                            Response.Write "<tr><td><a href='RRR.asp?MessageID="&MessageID&"&MessageHead="&objRecMessages("MessageHead")&"&ReplyId="&objRecReply("ReplyId")&"&RtoRId="&objRecRtoR("RtoRId")&"&RRRId="&objRecRRR("RRRId")&"&Thread="&Thread&"&Init="&objRecRRR("strUserInitials")&"' class=Messages>Reply</a><samp class=tinytiny> by: "&objRecRRR("strUserInitials")&", "&FormatDateTime(objRecRRR("SubmissionDate"),VbLongDate)&"</samp>"
                                StrSQLRRRR="Select * from DiscRtoRtoRtoR Where RRRId="&objRecRRR("RRRId")&";"
                                set objRecRRRR=objConn.Execute(StrSQLRRRR)
                                Response.Write "<table border=0 width=310 cellpadding=0 align=right>"
                                While Not objRecRRRR.EOF
                                    Response.Write "<tr><td><a href='RRRR.asp?MessageID="&MessageID&"&MessageHead="&objRecMessages("MessageHead")&"&ReplyId="&objRecReply("ReplyId")&"&RtoRId="&objRecRtoR("RtoRId")&"RRRId="&objRecRRR("RRRId")&"&RRRRId="&objRecRRRR("RRRRId")&"&Thread="&Thread&"&Init="&objRecRRRR("strUserInitials")&"' class=Messages>Reply</a><samp class=tinytiny> by: "&objRecRRRR("strUserInitials")&", "&FormatDateTime(objRecRRRR("SubmissionDate"),VbLongDate)&"</samp>"
                                    objRecRRRR.MoveNext
                                Wend
objRecRRRR.Close
set objRecRRRR=Nothing
                        Response.Write "</table>"
                        objRecRRR.MoveNext
                        Wend
objRecRRR.Close
set objRecRRR=Nothing
                Response.Write "</table>"
                objRecRtoR.MoveNext
               
                Wend
objRecRtoR.Close
set objRecRtoR=Nothing       
                Response.Write "</table>"

           
            objRecReply.MoveNext
        Wend
objRecReply.Close
set objRecReply=Nothing
        Response.Write "</table>"
       
    objRecMessages.MoveNext
Wend
objRecMessages.Close
set objRecMessages=Nothing
Response.Write "</table>"
%>
Avatar billede dontron Nybegynder
15. maj 1999 - 16:34 #2
Tak for koden Per, men den du har lavet tager desværre kun 4 underniveauer. Jeg ville gerne kunne klare ubegrændset.
Desuden bruger din rutine en del flere tabeller end jeg mener er nødvendigt :-)
Avatar billede winther Nybegynder
15. maj 1999 - 20:10 #3
Brug det der ligger på http://www.asp101.com/forum/display_forum.asp

Det skulle kunne klare opgaven.

//mw
Avatar billede dontron Nybegynder
16. maj 1999 - 09:54 #4
Ok, den er fuld rekursiv!. Det er ikke det pæneste kode jeg har set, men den virker :-)

Avatar billede mgade Nybegynder
17. maj 1999 - 13:14 #5
Ja - men du får brug for www.1001line.dk/filop, som fandt et fix på det problem der er i den - se også Johns svar på asp101 på min forespørgsel i diskussionsgruppen om installation.
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