Avatar billede no_doubt Nybegynder
01. februar 2008 - 15:29 Der er 10 kommentarer og
1 løsning

forum og niveauer

Jeg sidder og leger lidt med at lave et forum

Jeg vil gerne undgå arrays, hvorfor? - fordi det vil jeg bare :-)

Databasen jeg har er opbygget som: http://www.html.dk/scripts/asp/00015/ og koden ser sådan ud:

<html>

<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
</head>

<body>
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/db.mdb")
sql = "Select * From Forum where rid = 0"
Set rs = Conn.Execute(sql)
if rs.eof then
response.write "Tomt forum"
else
%>
<%do while not rs.EOF%>
<b><font face="Arial" size="2"><%=rs("titel")%></font></b><br>
   
    <%
    sql1 = "Select * From Forum where rid = " & rs("id") & ""
    Set rs1 = Conn.Execute(sql1)
    if rs1.eof then
    else
    %>
    <%do while not rs1.EOF%>
    &nbsp; &#9500; <b><font face="Arial" size="2"><%=rs1("titel")%></font></b><br><br>
    <%
    rs1.movenext
    loop
    end if
%>

<%
rs.movenext
loop
end if %>

</body>

</html>

Nu vil jeg så gerne have at det indlæg jeg har lavet til "Indlæg til tråd 1" bliver vidst på samme måde som "Indlæg til tråd 1" bliver vidst under "Tråd 1"

SE: http://www.forum.firmdesign.dk/
Avatar billede jansangill Nybegynder
01. februar 2008 - 22:54 #1
hvis du vil undgå arrays, så bliver du vel nødt til at lave et do while not loop inde i et do while not loop for at få dem skrevet ud således.

Det jeg mener er. Først skriv Hovedtrådene ud, derefter skriv trådene til hovedtrådet ud.

SQL=""
SET RS=Conn.execute(SQL)

  Do while not rs.eof
      'skriv voedtrådene ud
     
      SQL2=""
      SET RS2=Conn.execute(SQL2)
       
        Do while not rs2.eof
          'skriv undertråd ud
         
          rs2.movenext
        loop

      RS.movenext
  loop


Så gælder det bare om at style det således at anden kald bliver rykket ind iforhold til første kald...
Avatar billede jansangill Nybegynder
01. februar 2008 - 22:56 #2
Det er ikke godt performance mæssigt dog..
Avatar billede no_doubt Nybegynder
02. februar 2008 - 01:26 #3
jamen er det ikke det samme som jeg har nu. ?
Avatar billede keysersoze Ekspert
02. februar 2008 - 08:43 #4
langt fra - i mit eksempel har du kun ét sql kald, i ovenstående i teorien næsten uendeligt antal.
Avatar billede no_doubt Nybegynder
02. februar 2008 - 11:27 #5
nej mener om koden fra jasangill ikke er det samme som jeg selv er ude i
Avatar billede jansangill Nybegynder
02. februar 2008 - 11:34 #6
jo, så ikke lige du lavede to loops.

Hvad er det problemet er så?
Avatar billede no_doubt Nybegynder
02. februar 2008 - 11:40 #7
kan det ikke lave sådan at den selv laver loops afhænig af niveauer osv
Avatar billede keysersoze Ekspert
04. februar 2008 - 11:30 #8
joh - selve kaldene til sub-niveauer kan du pakke ind i en funktion der kalder sig selv til der ikke er flere niveauer.
Avatar billede no_doubt Nybegynder
04. februar 2008 - 15:49 #9
how ?
Avatar billede keysersoze Ekspert
04. februar 2008 - 17:16 #10
function bla(noget)
  'sql
  if not rs.eof
    'vis subs
    'kald function igen
  end if
end function


men som før skrevet - din database bliver latterligt tungt belastet.
Avatar billede keysersoze Ekspert
17. marts 2008 - 17:55 #11
lukketid?
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