Oj, det blev ju flera frågor ikväll. Jag ska försöka förklara mitt beskymmer.
Jag har lite adminfunktioner till mitt forum. När jag har raderat, flyttat så vill jag räkna om hur många trådar det finns i varje forumavdelning.
Jag har 3 tabeller:
Categorier:
Innehåller samtliga forumavdelningar
Inlagg:
Innehåller alla orginalmeddelande
Svar:
Innehåller alla svar
Nu vill jag loopa igenom tabellen Categorier och för varje categoriId räkna antal inlägg i tabellen Inlagg som har just det categoriId. Samt uppdatera med rätt antal Inlagg i tabellen Categorier.
jag satt och pulade men fick inte rätt på det:
strSQL = "SELECT IntForumId FROM Categorier ORDER BY IntForumId"
arrPoster = objConn.Execute(strSQL).GetRows()
For each IntForumId In arrPoster
IntForumId = arrPoster(0)
sql ="SELECT COUNT DISTINCT(IntForumId) AS Antal FROM Inlagg WHERE IntForumId = "&IntForumId&""
SET RS = objConn.Execute(sql)
sql ="UPDATE Categorier SET ForumThreads = "& RS("Antal") &" WHERE IntForumId = "&IntForumId&""
objConn.Execute sql,,128
Next
strSQL = "SELECT IntForumId FROM Categoreier ORDER BY IntForumId"
arrPoster = objConn.Execute(strSQL).GetRows()
[b]For IntForumId = 0 To UBound(arrPoster, 2)[/b]
IntForumId = [b]arrPoster(0, intForumID)[/b]
sql ="SELECT COUNT DISTINCT(IntForumId) AS Antal FROM Inlagg WHERE IntForumId = "&IntForumId&""
SET RS = objConn.Execute(sql)
sql ="UPDATE Categorier SET ForumThreads = "& RS("Antal") WHERE IntForumId = "&IntForumId&""
objConn.Execute sql,,128
Next
SQL satsen SELECT COUNT DIST... är jag inte riktigt säker på... vi får vänta på LarsG! ;)
Har kommit så här långt, den räknar och ger ut en siffra bara:
strSQL = "SELECT IntForumId FROM Categorier ORDER BY IntForumId"
arrPoster = objConn.Execute(strSQL).GetRows()
For IntForumId = 0 To UBound(arrPoster, 2)
IntForumId = arrPoster(0, intForumID)
sql ="SELECT COUNT(*) AS Antal FROM Inlagg WHERE IntForumId = "&IntForumId&""
SET RS = objConn.Execute(sql)
Response.Write "Antal "& RS("Antal") &" "
sql ="UPDATE Categorier SET ForumThreads = "& RS("Antal") &" WHERE IntForumId = "&IntForumId&""
objConn.Execute sql,,128
Next
Nu ser den ut enligt följande. Då räknar den båda, men uppdaterar bara första forumet.
<%
Set objDB = GetDBConn()
strSQL = "SELECT IntForumId FROM Categorier ORDER BY IntForumId"
arrPoster = objDB.Execute(strSQL).GetRows()
For I = 0 To UBound(arrPoster, 2)
I = arrPoster(0,I)
sql ="SELECT COUNT(*) AS Antal FROM Inlagg WHERE IntForumId = "&IntForumId&" OR Flyttat = "&IntForumId&""
SET RS = objDB.Execute(sql)
Response.Write "Antal "& RS("Antal") &" <br>"
sql ="UPDATE Categorier SET ForumThreads = "& RS("Antal") &" WHERE IntForumId = "&IntForumId&""
objDB.Execute sql,,128
Next
%>
Den slutliga och fungerande versionen blev: (tack @nders och tack Pace!)
strSQL = "SELECT IntForumId FROM Categorier ORDER BY IntForumId"
arrPoster = objDB.Execute(strSQL).GetRows()
For I = 0 To UBound(arrPoster, 2)
Id = arrPoster(0,I)
sql ="SELECT COUNT(*) AS Antal FROM Inlagg WHERE IntForumId = "&Id&" OR Flyttat = "&Id&""
SET RS = objDB.Execute(sql)
Response.Write "Antal "& RS("Antal") &" <br>"
sql ="UPDATE Categorier SET ForumThreads = "& RS("Antal") &" WHERE IntForumId = "&Id
objDB.Execute sql,,128
Next
Mvh Jörgen :)
394 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf