---
title: "Forum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/130296-forum"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "joel_joel88"
published: "2005-06-20T10:37:54.000Z"
updated: "2005-06-21T21:08:33.000Z"
replies: 19
views: 616
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/130296-forum"
---

# Forum

## #1 — joel_joel88, 2005-06-20T10:37Z

Ja håller på med ett enkelt forum.
Min fråga är, hur ska jag göra för att få det att se ut så här när jag ska skriva ut trådarna och svaren.
Altså trådarna ska vara länkar och svaren med. Under trådarna ska respektiva svar för varje tråd lägga sig.

ex.

TRÅD1
\-Svaren
TRÅD2
\-Svaren

osv........

Permalänk: https://www.webforum.nu/p/130296

## #2 — Troxy, 2005-06-20T14:35Z

Detta är en simpel förklaring, men jag hoppas du förstår iaf:

Det bästa sättet jag vet är att separera trådarna och svaren från varandra i olika tabeller i databasen.

I tabellen med svaren så har du ett fält som talar om vilken tråd svaret tillhör genom att referera till trådens ID.

För varje tråd du visar så hämtar du även svaren till tillhör tråden också.

Permalänk: https://www.webforum.nu/p/1632315

## #3 — joel_joel88, 2005-06-20T14:41Z

Så vet jag att man gör om man ska få fram trådens svar.

Fast jag ska ju ha en lista med rubriker. Tråden ska vara överst, under den så ska svaren vara. Hur fixar man detta, altså svaren ska vara undra varje tråd.

Tror det heter rekursiv eller något. 

Bättre exempel...

En tråd
... Re: En tråd
........Re: Tråd
En till tråd
...Re: En till tråd
.......Re: En till tråd

Permalänk: https://www.webforum.nu/p/1632317

## #4 — cyprys, 2005-06-20T15:02Z

> Det bästa sättet jag vet är att separera trådarna och svaren från varandra i olika tabeller i databasen.

Håller inte med utan tycker det är bland det dummaste man kan göra. Ett inlägg ska sparas på ett ställe vare sig det är början på en ny tråd, eller ett svar. 

> Tror det heter rekursiv eller något.

Ditt andra exempel var helt annorlunda än ovan och det heter **rekursion** det du är ute efter. ;) 

Vad man psuedokodmässigt gör.

```
sub checkanswers(parentID)
  Print(parentID.HeadLine)
  for each child of parentID
    checkanswers(childID)
  next 
end sub
```

Och den triggas med något liknande

```
for each new tread
  checkanswers(newThreadID)
next
```

Och mina *for each*  skulle kunna vara en sql-fråga till exempel där man listar alla svar som har parentID av det inlägget man svarade på.

Permalänk: https://www.webforum.nu/p/1632323

## #5 — joel_joel88, 2005-06-20T15:53Z

Hur ska jag då göra med mitt då?

Permalänk: https://www.webforum.nu/p/1632339

## #6 — cyprys, 2005-06-20T15:59Z

Följa mina exempel eller läsa lite om rekursion eller varför inte lite av båda och testa dig fram? ;)

Permalänk: https://www.webforum.nu/p/1632343

## #7 — joel_joel88, 2005-06-20T18:11Z

ok, fattar inget om detta, men tack ändå.

Någon annan som vet hur man kan göra det på lätt sätt?

Permalänk: https://www.webforum.nu/p/1632393

## #8 — desdecado, 2005-06-21T09:24Z

> **cyprys skrev:**
>
> > Det bästa sättet jag vet är att separera trådarna och svaren från varandra i olika tabeller i databasen.
>
> Håller inte med utan tycker det är bland det dummaste man kan göra. Ett inlägg ska sparas på ett ställe vare sig det är början på en ny tråd, eller ett svar.

Håller inte med, men det kanske beror på hur forumstrukturen ska presenteras. Ska den presenteras som ett utfällt träd så finns det ju inget som heter "tråd" i dess benärkelse, allt är ju poster kopplade till varandra.

För den vanligaste typen av forum där man väljer först Forum, sedan Tråd för att hamna på en sida med poster så är det många fördelar med att ha en tabell med trådar, speciellt om man ska agregera post count, senaste post, etc så att man kan skära bort dyrbara sekundrar från sql-anropen när besökarna och inläggen växer.

Permalänk: https://www.webforum.nu/p/1632546

## #9 — joel_joel88, 2005-06-21T13:20Z

Någon som vet fast inte sett tråden:OO :)

Permalänk: https://www.webforum.nu/p/1632657

## #10 — cyprys, 2005-06-21T15:50Z

> Håller inte med, men det kanske beror på hur forumstrukturen ska presenteras. Ska den presenteras som ett utfällt träd så finns det ju inget som heter "tråd" i dess benärkelse, allt är ju poster kopplade till varandra.

Jag tror vi talade om lite olika saker. Det jag menade var att själva första inlägget skulle finnas i en tabell. Med text, skribentID, tidpunkt osv. Men alla svar skulle finnas i en ny tabell med istort sett samma uppbyggnad plus en koppling till någon post i den första tabellen. Det du menar är snarare som ett index innehållandes huvudrubrik och inte mycket mer. :) 

> **joel_joel88 skrev:**
>
> Någon som vet fast inte sett tråden:OO :)

Jag har sett, jag vet och jag har visat.
Vi kan försöka igen med ett exempel. Nu utgår vi från att trådarna ligger i en tabell och alla inlägg i en.

```
sub checkanswers(parentID,vänsterindrag)
  set rs1 = conn.execute("select id, rubrik from inlägg where svartillID = " & parentID)
  do until rs1.eof
    response.write string(".",vänsterindrag) & rs1("rubrik")
    checkanswers(rs1("id"),vänsterindrag + 3)
  rs1.movenext
  loop
end sub

set rs = conn.execute("select rubrik, id from trådar order by senast_uppdaterad desc")
do until rs.eof
  response.write rs("rubrik")
  checkanswers(rs("id"),0)
rs.movenext
loop
```

Går självklart att optimera och köra en del genvägar här och där, men exemplet ska vara intoducerande till rekursionen i problemet.

Permalänk: https://www.webforum.nu/p/1632716

## #11 — joel_joel88, 2005-06-21T19:26Z

tack cyprys för att du hjälper mig :)

fast jag får detta felmeddelande.

> Microsoft VBScript compilation  error '800a0414'
> 
> Cannot use parentheses when calling a Sub
> 
> /forum/index.asp, line 12
> 
> checkanswers(rs1("id"),vansterindrag + 3)
> \-----------------------------------------^

Permalänk: https://www.webforum.nu/p/1632811

## #12 — cyprys, 2005-06-21T19:31Z

;) 

> Cannot use parentheses when calling a Sub

Du ska nog inte ta min kod bokstavligen. Har nog mer syntaxfel.

Ta bort paranteserna möjligtvis.

Permalänk: https://www.webforum.nu/p/1632815

## #13 — joel_joel88, 2005-06-21T19:33Z

och vad ska jag göra :)

vänsteridrag, är det ett tal jag ska ange? Fattar trögt nu :)

Permalänk: https://www.webforum.nu/p/1632819

## #14 — joel_joel88, 2005-06-21T19:43Z

Jag är nog väldig jobbig nu men kan du inte beskriva mer detaljerat så att en trög person som jag fattar. Vore jätte snällt.

Tackar på förhand

Permalänk: https://www.webforum.nu/p/1632826

## #15 — cyprys, 2005-06-21T19:46Z

Du kan ta bort allt vad heter vansterindrag. Det är precis vad det låter som. Om du studerar koden ser du att det värdet ökar ju djupare i rekursionen du trevar. Samt att den skriver ut ett antal punkter vilket är samma antal som variabeln vansterindrag. Du får alltså precis samma struktur och utskrift som i ditt exempel.

Rekommenderar att du försöker fatta begreppet rekursion genom att titta på olika exempel. Hur det fungerar helt enkelt. Då klarnar nog en del.

Permalänk: https://www.webforum.nu/p/1632827

## #16 — joel_joel88, 2005-06-21T19:50Z

ok, tackar. vet du något bra ställe där det står om rekursion?

Permalänk: https://www.webforum.nu/p/1632830

## #17 — cyprys, 2005-06-21T19:51Z

[Mycket exempel](http://www.google.se/search?hl=sv&biw=994&q=how+does+recursion++work%3F&btnG=S%C3%B6k&meta=) om inte annat.

Permalänk: https://www.webforum.nu/p/1632832

## #18 — joel_joel88, 2005-06-21T19:55Z

ok, jag frågade ju om JUST DU visste vart det fanns, inte vart google visste,  men tack ändå.

Permalänk: https://www.webforum.nu/p/1632837

## #19 — cyprys, 2005-06-21T20:07Z

Jag vet ju ett [ställe](http://www.google.se/search?hl=sv&biw=994&q=how+does+recursion++work%3F&btnG=S%C3%B6k&meta=)!

Permalänk: https://www.webforum.nu/p/1632850

## #20 — joel_joel88, 2005-06-21T21:08Z

Satt länge och drog mig i håret och tillslut löste jag det så här :birp

```
<%
sub check(parentID,indrag)
  set rs1 = connect.execute("select id, rubrik from svar where SID = " & parentID)
  do until rs1.eof
indrag = indrag + 1
  response.write "<tr>"
  response.write "<td>"
   str = string(indrag, " ")
   str = replace(str, " ", "&nbsp;")
       response.write str
     response.write "<a href=""read.asp?id=" & rs1("id") & """>Re: " & rs1("rubrik") & "</a>"
    response.write "</td>"
  response.write "</tr>"
    check rs1("id"), indrag
  rs1.movenext
  loop
end sub

set rs = connect.execute("select rubrik, id from trad order by id desc")
do until rs.eof
  response.write "<tr>"
  response.write "<td>"
   response.write "<a href=""read.asp?id=" & rs("id") & """>" & rs("rubrik") & "</a>"
  response.write "</td>"
  response.write "</tr>"
  check rs("id"),0 
rs.movenext
loop
%>
```

Permalänk: https://www.webforum.nu/p/1632881

---

Tråden på webben: https://www.webforum.nu/amne/asp/130296-forum
