I början av Januari 2014 låstes Whoa och du kan alltså ej logga in eller skriva något nytt i forumen. Innehåll i forum osv kommer finnas tillgängligt. Läs Mer »

Snabba upp ASP-sida (databashantering)

Hobby & Fritid - Datorer & Teknik

   

2005-05-24 10:41

Snabba upp ASP-sida (databashantering)

Hej, jag har ett litet problem. Jag ska göra en sida som hämtar svarsalternativ från en databas och visar dem i procent.

Alltså, om en fråga är:
"Vad tyckte du om det här?"
Så kan svaret vara ett tal mellan 1-6.

På sidan ska sedan alla svar visas så här:

1. Budskapet i presentationen var tydligt:
Antal svar: 481
1:0% 2:2% 3:12% 4:43% 5:36% 6:3%

Och så ska det se ut för ungefär 28 stycken frågor.


Koden som jag gjort nu för att hämta svaren och spara dem i Arrays ser ut så här:

dim x, y
dim Answers()
redim Answers(noQ,TotNum)
dim Totals()
redim Totals(noQ)
dim Questions
Questions = Array("Keynote1","Keynote2","SmartAccess1","SmartAccess2","FromVision1","FromVision2","CitrixAccess1","CitrixAccess2","EnterFuture1","EnterFuture2","RankingTopic1","RankingTopic2","RankingTopic3","RankingTopic4","OverallCitrix1","OverallCitrix2","OverallCitrix3","OverallCitrix4","OverallCitrix5","OverallCitrix6","Attract1","Attract2","Attract3","Attract4","ForPartners1","ForPartners2","ForPartners3")

For i=0 to 26
x = Questions
y = i
do until rsTot.EOF
if rsTot(x) = 1 then
Answers(y,0) = Answers(y,0) + 1
Totals(y) = Totals(y) + 1
elseif rsTot(x) = 2 then
Answers(y,1) = Answers(y,1) + 1
Totals(y) = Totals(y) + 1
elseif rsTot(x) = 3 then
Answers(y,2) = Answers(y,2) + 1
Totals(y) = Totals(y) + 1
elseif rsTot(x) = 4 then
Answers(y,3) = Answers(y,3) + 1
Totals(y) = Totals(y) + 1
elseif rsTot(x) = 5 then
Answers(y,4) = Answers(y,4) + 1
Totals(y) = Totals(y) + 1
elseif rsTot(x) = 6 then
Answers(y,5) = Answers(y,5) + 1
Totals(y) = Totals(y) + 1
end if
rsTot.MoveNext
loop
rsTot.MoveFirst
Next


rsTot är mitt Recordset, TotNum är antalet frågor, noQ är antalet frågor och Questions-arrayen innehåller alla fältnamn från databasen.

Vad jag gör är alltså att först köra en loop som går igenom alla frågor, och inuti den kör jag en loop som går igenom alla olika alternativ. Det blir ju ändå c:a 150 loops som ska loopa igenom 500 svar (eller tänker jag fel nu?). Det är ju alldeles för mycket hursomhelst, och förklarar varför det går så långsamt, men hur kan jag komma runt det?