webForumDet fria alternativet

Räkna svar i forum.

ASP

15 svar · 168 visningar · startad av Kent

Medlem sedan juli 2000355 inlägg
Frågan#1

Varför funkar inte denna kod för att räkna svar i ett forum,?

SQL = "select COUNT(*) AS svar from Inlagg where forum_id="&Request.QueryString("id")
Set RS2 = databas.execute(SQL)

den skriver ut ca 100-150 dubbla kopior av varje inlägg, vad kan detta bero på.?

Medlem sedan juli 2000355 inlägg
#2

Ingen.?

Medlem sedan juni 200032 967 inlägg
#3

ge oss lite mer kod, så ska vi se.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan dec. 19998 577 inlägg
#4

Hur är forumet uppbyggt?

------------------
Jourhavande @e SweQuake.com

Medlem sedan juli 2000355 inlägg
#5

Do while not RS.EOF

SQL = "select COUNT(*) AS svar from Inlagg where forum_id="&Request.QueryString("id")
Set RS2 = databas.execute(SQL)
%>
<tr>
<td><%=RS("namn")%></td>
<td><%=RS2("svar")%></td>
</tr>
<%
RS.MoveNext
Loop
%>

Medlem sedan juli 2000355 inlägg
#6

??.

Medlem sedan dec. 200012 464 inlägg
#7

den skriver ut ca 100-150 dubbla kopior av varje inlägg, vad kan detta bero på.?

Är det att den skriver ut samma namn flera gånger. (<td><%=RS("namn")%></td> )

I så fall beror det på den fråga som hör i hop med RS och vad du har för data i dina tabeller.

------------------
essentitia preter non sans multiplicandum

Medlem sedan juli 2000355 inlägg
#8

Om jag tar bort räknaren så funkar forumet helt felfritt, det är när jag lägger till den som den skriver ut en massa samma poster.

Medlem sedan feb. 20001 590 inlägg
#9

RS2("svar") är ju egentligen benämningen på ett fält, ska det inte bara vara =svar?

Eller har du antal svar lagrat i databasen, konfundersam...

/T

------------------
"Den som väntar på någon som gått behöver inte vänta längre..."

Medlem sedan juni 200032 967 inlägg
#10

svar till toonster:

SQL = "select COUNT(*) AS svar"

antalet svar hämtas till ett uträknat fält med alias svar. detta fält finns inte i tabellen utan skapas av frågan.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan dec. 19998 577 inlägg
#11

Men om du ändå använder ett statiskt id (Request.QueryString("id")), så kan du väl lägga den utanför loopen, eller?

------------------
Jourhavande @e SweQuake.com

Medlem sedan juli 2000355 inlägg
#12

Det är alltså inte ett enda forum utan flera forum med olika id'n, ex, forum.asp?id=2, så då går det väl inte med,
SQL = "select COUNT(*) AS svar".?

Medlem sedan dec. 19998 577 inlägg
#13

Njo, du för ta id:t ifrån databasen:

SQL = "select COUNT(*) AS svar from Inlagg where forum_id="&rs("id")

------------------
Jourhavande @e SweQuake.com

Medlem sedan juli 2000355 inlägg
#14

NU skriver den inte ut ett enda inlägg och visar att det finns 11 svar.

Medlem sedan juli 20003 825 inlägg
#15

Hur ser dina tabeller i databasen ut egentligen?

Fyll på det som saknas:

[forum]
id - räknare
namn - nam på tråd

[inlagg]
id - räknare
forumID - int, forum

------------------
Never underestimate your opponents.

Medlem sedan juli 20003 825 inlägg
#16

Det är alltså inte ett enda forum utan flera forum med olika id'n, ex, forum.asp?id=2, så då går det väl inte med, SQL = "select COUNT(*) AS svar".?

index.asp?id=2

Är det så det funkar så är det loopen det är fel på! :-)

Ta bort den i så fall, skriv bara så här;

' ## NAMN
SQL = "SELECT [namn] FROM [forum] WHERE [id] = "& request("id") & ";"
Set RS1 = databas.execute(SQL)
on error resume next
' ## ANTAL
SQL = "SELECT COUNT(*) AS svar FROM [Inlagg] where [forum_id] = "& request("id") & ";"
Set RS2 = databas.execute(SQL)
on error resume next

response.write "Namn: " & RS1("namn") & " antal: " & RS2("antal")

------------------
Never underestimate your opponents.

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)