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?

 

2005-05-24 10:48
varför tar du inte ut infon direkt i selecten istället? gör sedan en funktion som räknar ut procentsatsen för varje svar. eller missuppfattar jag dig totalt nu?
"Skiing without avalanches would be the perfect sport. On the other hand it's what makes it fun."

2005-05-24 11:28
Trallfall

Det gör jag gärna, men jag kan inte för mitt liv lista ut hur jag ska göra det nämligen. Jag är helt blockerad.
 

2005-05-24 16:43
du skulle kunna använda COUNT och SUM... e dock inte säker på att jag uppfattat dig korrekt...
"Skiing without avalanches would be the perfect sport. On the other hand it's what makes it fun."

2005-05-24 17:09
Fast jag skulle behöva göra asmånga queries till databasen då väl? 6 stycken för varje fråga, eller? Jag har kanske förklarat otydligt. I vilket fall fick jag ok på den långa laddningstiden, så det är inte lika bråttom nu :)