Just nu i M3-nätverket
Gå till innehåll

Vill visa antal kommentarer till ett visst inlägg


MB

Rekommendera Poster

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

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

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]

Länk till kommentar
Dela på andra webbplatser

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]

Länk till kommentar
Dela på andra webbplatser

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?

 

Länk till kommentar
Dela på andra webbplatser

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

 

Länk till kommentar
Dela på andra webbplatser

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Å]

 

Länk till kommentar
Dela på andra webbplatser

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)

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...