Just nu i M3-nätverket
Jump to content

Vill visa antal kommentarer till ett visst inlägg


MB

Recommended Posts

Hej.

 

Jag håller på och bygger ett forum och vill kunna se hur många kommentarer ett visst inlägg har.

 

När man klickat på ett forum så får man upp alla rubriker som finns i det forumet. Det är här jag vill se antal kommentarer i form av en siffra.

 

Ex.

Rubrik 1 (8) <-----detta inlägg har 8 kommentarer

 

Rubrik 2 (12) <------detta inlägg har 12 kommentarer

 

Sen när man klickar på t.ex. Rubrik 1 så kommer man till det inlägget.

 

hoppas att det går att förstå vad jag menar.

Här är koden jag använder men som inte fungerar:

 

sql=[GRÅ]"select * FROM texter where forum='"[/GRÅ]&[b]Request[/b].QueryString([GRÅ]"forumnamn"[/GRÅ])&[GRÅ]"' order by datum"[/GRÅ]
[color="#0000ff"]Set[/color] rubriker = koppling.[color="#0000ff"]Execute[/color](sql)

[color="#0000ff"]Do[/color] until rubriker.eof
antal_inlagg=[GRÅ]"Select * FROM kommentarer where id2="[/GRÅ]&rubriker([GRÅ]"id"[/GRÅ])&[GRÅ]" order by datum"[/GRÅ]
[color="#0000ff"]Set[/color] antal = koppling.[color="#0000ff"]Execute[/color](antal_inlagg)
rakna = 0
[color="#0000ff"]Do[/color] until antal.eof
rakna = rakna + 1
[color="#0000ff"]Loop[/color]

[b]Response[/b].Write([GRÅ]"<a href='forum.asp?visa=inlagg&forumid="[/GRÅ]&rubriker([GRÅ]"id"[/GRÅ]) &[GRÅ]"' class='rubrikinlagg'>"[/GRÅ] &rubriker([GRÅ]"rubrik"[/GRÅ]) &[GRÅ]"</a>&nbsp;&nbsp;("[/GRÅ]&rakna&[GRÅ]")<p></p>"[/GRÅ])
rubriker.movenext
[color="#0000ff"]Loop[/color]

 

Tacksam för hjälp

 

 

 

 

Link to comment
Share on other sites

Ersätt din kod med följande:

 

[log]

sql=[GRÅ]"SELECT id,rubrik,COUNT(id) AS Antal FROM texter WHERE forum='"[/GRÅ]&[b]Request[/b].QueryString([GRÅ]"forumnamn"[/GRÅ])&[GRÅ]"' GROUP BY id,rubrik ORDER BY  datum"[/GRÅ]
[color="#0000ff"]Set[/color] rubriker = koppling.[color="#0000ff"]Execute[/color](sql)

[color="#0000ff"]Do[/color] until rubriker.eof
rakna=rubriker([GRÅ]"Antal"[/GRÅ])
[b]Response[/b].Write([GRÅ]"<a href='forum.asp?visa=inlagg&forumid="[/GRÅ]&rubriker([GRÅ]"id"[/GRÅ]) &[GRÅ]"' class='rubrikinlagg'>"[/GRÅ] &rubriker([GRÅ]"rubrik"[/GRÅ]) &[GRÅ]"</a>  ("[/GRÅ]&rakna&[GRÅ]")<p></p>"[/GRÅ])
rubriker.movenext
[color="#0000ff"]Loop[/color]

[/log]

 

AnjunaMoon

____________________________________________________________

/* There is nothing more permanent than a temporary solution... */

Stoppa mjukvarupatenten nu! http://www.ffii.se/

 

[inlägget ändrat 2004-11-10 11:59:56 av Anjuna Moon]

Link to comment
Share on other sites

Hej.

 

Tack för koden men jag får följande felmeddenade:

 

Feltyp:

Microsoft JET Database Engine (0x80040E21)

Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'datum'.

visaforum.asp, line 32

 

 

Jag har två tabeller, den ena heter texter där alla inlägg finns och en tabell som heter kommentarer där alla kommentarer finns till respektive inlägg.

 

 

 

 

 

[inlägget ändrat 2004-11-10 12:18:57 av MB]

Link to comment
Share on other sites

Tja, om du lägger till fält i queryn så måste du ju också lägga till dessa i grupperingen. Svaret jag skrev var baserat på den kod du gav. Hur skrev du om queryn?

 

Link to comment
Share on other sites

Hmm,

 

Ska jag använda Inner Join eftersom jag har två tabeller ?

 

Enligt din kod så hämtar jag bara från tabellen texter.

Kommentarerna finns i tabellen kommentarer med fältnamn:

id, id2 (detta är en relation till id i tabellen texter), namn, kommentar

 

Tabellen texter har följande fältnamn:

 

id, rubrik, text

 

Link to comment
Share on other sites

Ah, ok, lite miss där från min sida, sorry! =)

Du får använda en Outer Join:

 

sql=[GRÅ]"SELECT T.id,rubrik,T.datum,COUNT(K.id2) AS Antal FROM (texter T LEFT OUTER JOIN kommentarer K ON K.id2=T.id) WHERE forum='"[/GRÅ]&[b]Request[/b].QueryString([GRÅ]"forumnamn"[/GRÅ])&[GRÅ]"' GROUP BY T.id,T.rubrik,T.datum ORDER BY T.datum"[/GRÅ]

 

Link to comment
Share on other sites

Tack för poängen! Om du undrar varför jag använde LEFT OUTER JOIN istf INNER JOIN så var det för att täcka de fall där det ännu inte finns några kommentarer inlagda under en viss rubrik (dvs där antal blir 0)

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...