Jörgen HPMedlem sedan feb. 20012 179 inlägg
Hej!
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
Tacksam för vägledning :)
Mvh Jörgen
------------------
Varför bråka när man kan kramas?
[Redigerat av jorgen den 07 okt 2001]
PaceMedlem sedan juni 20015 947 inlägg
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! ;)
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
jorgenMedlem sedan feb. 20012 179 inlägg
Hej!
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
Skriver ut:
Antal 2
Tips någon?
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
@ndersMedlem sedan juni 200026 914 inlägg
Vad är det som inte fungerar nu alltså?
Mvh,
------------------
All your base are belong to me.
jorgenMedlem sedan feb. 20012 179 inlägg
Hej!
Den borde skriva ut:
Antal 2
Antal 3
Sedan sker det ingen update alls, men jag får inget felmess heller.
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
@ndersMedlem sedan juni 200026 914 inlägg
Ah!
Du använder variabeln intForumID lite galet, dels som kontrollvariabel i din loop, men också som något helt annat.
For [b]IntForumId[/b] = 0 To UBound(arrPoster, 2)
[b]IntForumId[/b] = arrPoster(0, intForumID)
Byt namn på den ena är mitt förslag. :)
Mvh,
------------------
All your base are belong to me.
jorgenMedlem sedan feb. 20012 179 inlägg
Hej!
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
%>
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
[Redigerat av jorgen den 07 okt 2001]
jorgenMedlem sedan feb. 20012 179 inlägg
Hej!
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 :)
------------------
Varför bråka när man kan kramas?
[Redigerat av jorgen den 07 okt 2001]