---
title: "Kolla om man röstat (ur databasen)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/85024-kolla-om-man-röstat-ur-databasen"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Melea"
published: "2003-09-01T19:56:42.000Z"
updated: "2003-09-02T09:12:39.000Z"
replies: 6
views: 232
page: 1
pages: 1
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/85024-kolla-om-man-röstat-ur-databasen"
---

# Kolla om man röstat (ur databasen)

## #1 — Melea, 2003-09-01T19:56Z

Hejsan!

Jobbar på en omröstning. Just nu kan man rösta hur många gånger som helst... det jag vill är en funktion (if sats) som kollar om man röstat.

Jag har 3 tabeller. En som heter poll_fraga som sparar frågan och pollID. En som heter poll_svar som sparar pollID, svar, svarID och klick... Och i den tredje tabellen som heter poll_users har jag username, pollID och svarID.

Röstningen är klar, allt funkar finfint förutom checken som jag inte fått att fungera. 

Såhär ser koden ut för tillfället:

```
<%MySQL = "SELECT * FROM poll_fraga order by id desc limit 1 " 
Set RecSet = Conn.Execute(MySQL)%>

<%If RecSet.EOF then%>
Ingen fråga inlagd
<%Else%>
<%=RecSet("fraga")%>
<%End If%>

<%MySQL = "SELECT * FROM poll_svar where pollID = " & RecSet("id") & " order by svarNR " 
Set Svar = Conn.Execute(MySQL)

MySQL = "SELECT sum(klick) As tot FROM poll_svar where pollID = " & RecSet("id") & " " 
Set RS = Conn.Execute(MySQL)

totalt = RS("tot")

If Svar.EOF Then%> 
   
Inga frågor!

<%End If

Do Until Svar.EOF

stat = Svar("klick")
If stat <> "0" Then
res = (stat/totalt)* 200
Else
res = "0"
End If%>

<table cellspacing="0" cellpadding="2" border="0" width="100%">
<tr>
<td width="200"><a href="forms/poll_rosta.asp?id=<%=Svar("id")%>&val=<%=Svar("svarnr")%>&pollID=<%=Svar("pollID")%>"><%=Svar("svar")%></a></td>
<td rowspan="2" width="30" valign="bottom" align="right">(<%For i=1 to Len(stat)%><%=Mid(stat,i,1)%><%Next%>)</td>
</tr>
<tr>
<td width="90" height="7"><img src="images/stapel.gif" width="<%=Round(res,0)%>%" height="5" border="1"></td>
</tr>

<%Svar.MoveNext
Loop%>

<tr>
<td colspan="2">Antal röster: <%For i=1 to Len(totalt)%><%=Mid(totalt,i,1)%><%Next%></td>
</tr>
</table>
```

och där jag sparar informationen när man röstar:

```
Set RecSet = Conn.Execute("Select * From poll_svar Where id = " & Request.QueryString("id") & " And svarNR = " & Request.QueryString("val"))

Conn.Execute("Update poll_svar Set klick = klick + 1 Where id = " & Request.QueryString("id") & " And svarNR = " & Request.QueryString("val"))

Conn.Execute("Insert Into poll_users(pollID, username, svarnr) Values(" & Request.Querystring("pollID") & ",'"& Session("username") &"', " & Request.Querystring("val") & ")")

strRedirPage = Request.ServerVariables("HTTP_REFERER")
Response.Redirect(strRedirPage)
```

Tacksam för svar!

Mvh

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

## #2 — ConnyFox, 2003-09-01T21:09Z

Hmm du skulle väll kunna göra nått med cookies.. e dock helt ny på detta så jag e inte säker på att det är såhär det funkar!

```
if Response.Cookies("rostat")= "ja" then
response.write "du har redan röstat"
else

Set RecSet = Conn.Execute("Select * From poll_svar Where id = " & Request.QueryString("id") & " And svarNR = " & Request.QueryString("val"))

Conn.Execute("Update poll_svar Set klick = klick + 1 Where id = " & Request.QueryString("id") & " And svarNR = " & Request.QueryString("val"))

Conn.Execute("Insert Into poll_users(pollID, username, svarnr) Values(" & Request.Querystring("pollID") & ",'"& Session("username") &"', " & Request.Querystring("val") & ")")

strRedirPage = Request.ServerVariables("HTTP_REFERER")
Response.Redirect(strRedirPage)

Response.Cookies("rostat")= "ja"
end if
```

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

## #3 — Melea, 2003-09-01T21:17Z

Jo men de vill jag inte :) Vill spara det i en databas så man som inloggad bara kan rösta EN gång... Menar, man ska inte kunna rösta igen om man tar bort sina cookies eller byter dator.

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

## #4 — Ceeron, 2003-09-01T22:42Z

du får köra en IF-sats innan du skriver ut formuläret som kolla om anv finns i databasen redan

jag e lite borta i din tabellstruktur...

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

## #5 — Melea, 2003-09-02T05:41Z

ok, men problemet är att jag måste loopa igenom alla användare med just det pollID'et för att se om man röstat... hur gör jag detta?

Mvh

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

## #6 — solbulle, 2003-09-02T06:19Z

Varför måste du loopa igenom dem?
Det räcker väl om du kollar om just den inloggade liraren har röstat?
typ:

```
Set RecSet = Conn.Execute("Select svarnr From poll_users Where id = " & Request.QueryString("id") & " And username = & ",'"& Session("username") &"'")
If NOT Recset.EOF then
response.write "du har redan röstat"
else
Conn.Execute("Update poll_svar Set klick = klick + 1 Where id = " & Request.QueryString("id") & " And svarNR = " & Request.QueryString("val"))
Conn.Execute("Insert Into poll_users(pollID, username, svarnr) Values(" & Request.Querystring("pollID") & ",'"& Session("username") &"', " & Request.Querystring("val") & ")")

strRedirPage = Request.ServerVariables("HTTP_REFERER")
Response.Redirect(strRedirPage)

end if
```

Glöm inte att stänga alla dina kopplingar o rs.

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

## #7 — Melea, 2003-09-02T09:12Z

Det tackar jag för!
Såhär ser koden ut just nu:

```
strRedirPage = Request.ServerVariables("HTTP_REFERER")

Set RS = Conn.Execute("Select * From poll_users Where pollID = " & Request.Querystring("pollID") & " AND username = '" & Session("username") & "' ")

If NOT RS.EOF then
Session("fel") = "Du kan bara rösta en gång per fråga!"
Response.Redirect(strRedirPage)
else

Conn.Execute("Update poll_svar Set klick = klick + 1 Where id = " & Request.QueryString("id") & " And svarNR = " & Request.QueryString("val"))

Conn.Execute("Insert Into poll_users(pollID, username, svarnr) Values(" & Request.Querystring("pollID") & ",'"& Session("username") &"', " & Request.Querystring("val") & ")")

Response.Redirect(strRedirPage)

End If%>
```

Mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/85024-kolla-om-man-röstat-ur-databasen
