---
title: "Pollfunktion med flera alternativ?!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/9373-pollfunktion-med-flera-alternativ"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "brw"
published: "2001-04-25T06:39:00.000Z"
updated: "2001-05-09T11:27:00.000Z"
replies: 30
views: 503
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/9373-pollfunktion-med-flera-alternativ"
---

# Pollfunktion med flera alternativ?!

_Sida 1 av 2._

## #1 — brw, 2001-04-25T06:39Z

Undrar om nån har en schysst lösning på hur man bäst gör en poll med flera alternativ. Jag vill att alla tidigare frågor skall vara kvar så att man kan "titta på tidigare frågor".

Ska man ha unika svarsalternativ för varje fråga eller bör man ha en tabell för svarsalternativen ifall de återkommer en gång till vilket det ofta gör Tex. Ja eller Nej.

Sen ibland kan det ju vara så att man vill ha flera alternativ och sådana alternativ som inte finns sen förut.. Till exempel om man ställer en fråga om hockey vm om vilken som besökarna tror vinner matchen.. det är ju ett svarsalternativ som troligen bara kommer användas 1 gång. 

Någon som har nån schysst lösning?

Permalänk: https://www.webforum.nu/p/9373

## #2 — erka, 2001-04-25T06:58Z

Jag har funderat lite på om man inte borde ta å göra ett frågesports "quizz" asp chosan. Med flervals frågor, tex 5 olika alternativ och om man svarar rätt så sparas det in i en databas knutet till sitt namn. Kanske borde vi folk slå sina kloka huvuden ihop =)

Permalänk: https://www.webforum.nu/p/268118

## #3 — erka, 2001-04-25T06:58Z

ska bygga ett ikväll om jag får tid, brw, tack för att du påminnde mig !

Permalänk: https://www.webforum.nu/p/268119

## #4 — Grymt, 2001-04-25T07:00Z

[www.swede.com](http://www.swede.com)  har en gratis asp-omröstning.

Den är suverän, titta in [www.formtoppen.nu/grymt](http://www.formtoppen.nu/grymt)  så får du se hur den ser ut. 

Där är även ett adminsystem.

Permalänk: https://www.webforum.nu/p/268120

## #5 — Vide, 2001-04-25T07:00Z

Principen för att kunna använda dynamiskt antal svar är att lägga upp en separat tabell. Varje svarspost består av frågans ID, svarets ID och Svarets text.

Så nu när du skall söka upp alla svar frågar du snällt tabellen om alla svar med frågans ID... på så sätt kan du ha hur många svar som helst utan att statiskt ta upp detta när du inte behöver det... :)

Mvh, Vide

Permalänk: https://www.webforum.nu/p/268121

## #6 — erka, 2001-04-25T07:14Z

frågan är om man ska koppla den till ett användar system hur man ska sköta poängställningen. Om man ska ha en tabell med alá TblScore där det finns 2 fält, Anvandare samt Poang.

Men då kan man ju rösta mer en en gång på varje fråga, och få jättemånga poäng och det är ju inte bra. Man skulle kunna ha en tabell TblScore där man sätter in användarnamnet, om han svarade rätt/fel samt Frågans Id och sedan kolla om han har svarat på frågan innan man gör inserten av poängen.

Eller så slänger man bara dit en cookie med FrågeId och låter den ligga kvar i några dagar på klienten..

Vad låter bäst ?

Permalänk: https://www.webforum.nu/p/268122

## #7 — Vide, 2001-04-25T07:38Z

Du har helt enkelt bara en tabell med: AnvändarId, frågeId, SvarsId...

Sedan om du skall kolla så söker du på frågans Id, och på Användarens ID samtidigt, och får du tillbaks en post så har han ju redan svarat på frågan...

Permalänk: https://www.webforum.nu/p/268123

## #8 — brw, 2001-04-25T08:10Z

Vide.. du skulle inte enkelt bara göra en snabb lista på de olika tabellerna och kolumnerna som du tänker..

som jag har det idag så har jag bara med 2 svarsalternativ. Det ser då ut såhär:

FRAGORINSTALLNINGAR
id
typ (om det ska vara veckans eller dagens fråga: V/D som alternativ)

FRAGOR
id
typ (veckans eller dagens fråga)
datumvisa (vilket datum den ska visas om det är dagens fråga)
vecka (vilken vecka om det är veckans fråga)
fraga (självaste frågan)
kortinfo (lite info om frågan)
altid (svarsalternativs id)

FRAGORALTERNATIV
id
svar1
svar2

FRAGORSVAR
id
datum (datum då man svarade)
svar (vilket svar man svarat)
fragaid (vilken fråga som svaret tillhör)

Ge mig gärna förslag på som du menar hur jag ska kunna få det att bli helt dynamiskt med svarsalternativen.

Permalänk: https://www.webforum.nu/p/268124

## #9 — erka, 2001-04-25T08:10Z

Det hade jag oxå tänkt men jag undrar mest vilket som gör den bästa "Quizzen" om man inte ska få svara på en fråga mer än 1 gång, blir det fel den gången så kan man inte försöka igen..

Eller att man kan rösta på en fråga men enbart en gång varje dag..

Permalänk: https://www.webforum.nu/p/268125

## #10 — Vide, 2001-04-25T08:33Z

Såhär skulle jag lägga upp tabellerna...

**tblFraga**
id : fragetext
\----------- : poster
1 : Fråga 1
2 : Fråga 2
3 : Fråga 3
4 : Fråga 4
5 : Fråga 5

**tblSvar**
id : fraga_id : svartext
\----------- : poster
1 : 1 : Ja
2 : 1 : Kanske
3 : 1 : Nja
4 : 1 : Nej

**tblPoster**
id : fraga_id : svarid
\----------- : poster
1 : 1 : 2
2 : 1 : 2
3 : 1 : 4
4 : 1 : 1

Permalänk: https://www.webforum.nu/p/268126

## #11 — brw, 2001-04-25T08:46Z

Det betyder då att jag måste lägga in svarsalternativ på varje fråga och kan inte använda några svarsalternativ som redan ligger där.

Alltså borde frågan till databasen bli såhär:

Välj ut aktuell fråga som skall visas
Lista alla svarsalternativ som är till aktuell fråga från en tabell med svaralternativ som tillhör den frågan genom att man vet ID på frågan

När nån svarar sätt in frågans id och svarets id i en tabell 

plocka sedan ut statistik med en loop när du vet frågans id så plockar den fram alla svarsalternativ och räknar hur många det är på respektive.

Det betyder att det kan bli lite problem när man skall lägga till en fråga eftersom du måste veta vilket id frågan har innan du kan spara ner svarsalternativen i tabellen för svarsalternativen för att de ska höra ihop.

Hur fixar man det bäst? eller tänker jag helt galet

Permalänk: https://www.webforum.nu/p/268127

## #12 — Vide, 2001-04-25T08:53Z

Precis efter du lagt in frågan så får den ju ett ID... plocka då ut den senaste posten i den tabell, och du har ditt ID... :)

Permalänk: https://www.webforum.nu/p/268128

## #13 — erka, 2001-04-25T09:48Z

Kan någon som är en fena kolla igenom denna pollen å komma på fel å klantigheter..Vide, lånade lite av din random funktion. =) Den är för en liga till ett användarsystem som håller koll på användarna med Sessioner, då session("username")

Mina tabeller ser ut så här

```
POLLANSWEAR
-------------
PollAnswearId (räknare)
PollId (tal)
PollAnswear (pm)
PollScore (yes/no)

POLLQUESTION
-------------
PollId (räknare)
PollQuestion (Pm)
PollInsertDate (datum)

POLLSCORE
-------------
PollId (tal)
UserName (text)

SCORE
-------------
UserName (text)
PollScore (tal)
```

Poll.asp

```
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("LocalPoll.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
SQL = "select Count(*) AS Rnd from PollQuestion"
Set CountRnd = databas.execute(SQL)

Randomize
Set rstemp = Server.Createobject("ADODB.Recordset")
SQL = "Select PollId from PollQuestion"
rstemp.cursorlocation = 3
rstemp.cachesize = 5
rstemp.open SQL, "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("LocalPoll.mdb") & ";"
rstemp.move Int(Rnd*CountRnd("Rnd"))

SQLStmt = "SELECT PollAnswear.PollAnswearId, PollAnswear.PollId, PollAnswear.PollAnswear, PollQuestion.PollId, PollQuestion.PollInsertDate, PollQuestion.PollQuestion FROM PollQuestion INNER JOIN PollAnswear ON PollQuestion.PollId = PollAnswear.PollId Where PollQuestion.PollId = "& RStemp("pollid") &" AND PollAnswear.PollId = "& RStemp("pollid") &" "
Set RS = Databas.Execute(SQLStmt)
%>

<form name="form1" method="post" action="PollCheck.asp">

<%=RS("PollQuestion")%><br><br>

<% Do Until RS.EOF%>
  <input type="radio" name="svar" value="<%=RS("pollanswearid")%>"> <%=RS("pollanswear")%>
  <input type="hidden" name="PollId" value="<%=RS("PollId")%>">
  <br>
<%
RS.MoveNext
Loop
Rs.close
%>
<input type="submit" name="Submit" value="Ok">
</form>
```

PollCheck.asp

```
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("LocalPoll.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"

SQLStmt = "SELECT * FROM PollAnswear Where PollAnswearId = "& Request.Form("svar") &""
Set RS = Databas.Execute(SQLStmt)

PollId = (left(Request.Form("pollid"),1)) 

'OM DET VAR FEL SVARAT

If RS("pollscore") = false Then
	Response.Write"Detta var fel<br>"

	SQLStmt2 = "SELECT * FROM PollScore Where PollId = "& PollId &" And UserName = '"& Session("username") &"' "
	SET RS2 = Databas.Execute(SQLstmt2)

	If RS2.EOF = True then

		Response.Write"Du har inte röstat på denna fråga tidigare, men du hade fel så noll poäng till dig!"
		SQL = "INSERT INTO POLLSCORE"
		SQL = SQL & "(PollId,Username) "
		SQL = SQL & "VALUES(" & PollId & ", '" & Session("username") & "')"
		Databas.Execute(SQL)
		poang = 0
		SQLStmt ="UPDATE SCORE SET PollScore = PollScore +"& poang &"  Where Username = '"& Session("username") &"'"
		Databas.Execute(SQLStmt)
	Else
		Response.Write "Redan Röstat, inga poäng utdelade"
	End if
	RS2.close

'OM DET VAR RÄTT SVARAT

ElseIf RS("pollscore") = true Then
	Response.Write"Detta var ju helt rätt<br>"
	

	SQLStmt2 = "SELECT * FROM PollScore Where PollId = "& PollId &" And UserName = '"& Session("username") &"' "
	SET RS2 = Databas.Execute(SQLstmt2)

	If RS2.EOF = True then
	
		Response.Write"Du har inte röstat på denna fråga tidigare, du hade helt Rätt så ett poäng till dig!"
		SQL = "INSERT INTO POLLSCORE"
		SQL = SQL & "(PollId,Username) "
		SQL = SQL & "VALUES(" & PollId & ", '" & Session("username") & "')"
		Databas.Execute(SQL)
		poang = 1
		SQLStmt ="UPDATE SCORE SET PollScore = PollScore +"& poang &"  Where Username = '"& Session("username") &"'"
		Databas.Execute(SQLStmt)
	Else
		Response.Write "Redan Röstat, inga poäng utdelade"

	End if
	RS2.close
End If
%>
```

Permalänk: https://www.webforum.nu/p/268129

## #14 — erka, 2001-04-25T09:50Z

Plocka ut senaste posten med @@identity är smidigt som fean, även i access...

Permalänk: https://www.webforum.nu/p/268130

## #15 — Vide, 2001-04-25T11:05Z

Är det något som inte fungerar?

Permalänk: https://www.webforum.nu/p/268131

## #16 — erka, 2001-04-25T11:11Z

nej den funkar bra, undrar bara om det är korkad kodning

Permalänk: https://www.webforum.nu/p/268132

## #17 — @nders, 2001-04-25T11:16Z

det enda jag reagerar över spontant (har inte lusläst, dock) är att du använde username för att hålla koll på saker i score och pollscore.

generellt skall man inte använda namn (eftersom folk tenderar att byta användarnamn exempelvis' ändrar stavning, etc.), utan man bör använda ett id, till exempel räknaren från medlemstabellen.

men, alla sätt är bra utom de dåliga. din kod tycker jag annars ser ganska bra ut.

mvh,

Permalänk: https://www.webforum.nu/p/268133

## #18 — erka, 2001-04-25T11:20Z

jo jag har faktiskt tänkt på det anders, men nu kommer de aldrig att byta namn eftersom det är till en särskilld sak.. =) Men det är smartare att bygga det så.. ska göra det nästa gång.. danke

Permalänk: https://www.webforum.nu/p/268134

## #19 — Vide, 2001-04-25T11:22Z

Är det inte lite overkill med att ha svarsalternativen i ett pm-fält? r'cker det inte 255 tecken (Text)? :)

Permalänk: https://www.webforum.nu/p/268135

## #20 — brw, 2001-04-25T11:23Z

Ah.. tackar vide.. ska börja programmera om lite nu då heeh :h

Permalänk: https://www.webforum.nu/p/268136

---

Tråden på webben: https://www.webforum.nu/amne/asp/9373-pollfunktion-med-flera-alternativ  
Nästa sida: https://www.webforum.nu/amne/asp/9373-pollfunktion-med-flera-alternativ/page2.md
