Just nu i M3-nätverket
Jump to content

Mer om snabbfråga!


mia_sr

Recommended Posts

Hej!

 

Jag håller på att trixa med en snabbfråga som faktiskt börjar ordna till sig.

Problemet är att jag inte ser procentstaplarna.

Man röstar på sidan poll.asp rösten skickas till sidan vote.asp som lägger in den i databasen. Sen ska man kunna gå tillbaka till poll.asp för att se resultatet. Men jag ser bara samma sida som när jag röstade.

Eftersom att jag kan söka ut alternativen så borde jag väl kunna söka ut antal röster? Det borde vara själva uträkningen det är fel på, eller?

Den som vill får gärna hjälpa till att felsöka! Jag klistar in filen poll.asp.

 

Databasen består av tre tabeller "Info" med ID och sistadat, "Items" med ID och Name som listar alternativen och Votes med ID, Vote och ip som lagrar rösterna.

Poll.asp

<%

Dim Connection,SQL,Rs

Set Connection = Server.CreateObject("ADODB.Connection")

on error resume next

Connection.ConnectionTimeout

Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../../../../db/poll.mdb")

SQL = "Select * From items"

Set Rs = Connection.Execute(SQL)

Dim week

function convert(tekst)

tekst = Replace(tekst,Chr(13),"<br>")

tekst = edithttp(tekst)

convert = tekst

end function

%>

<HTML>

<HEAD>

<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">

</HEAD>

<BODY>

<font face="Verdana, Arial, Helvetica, sans-serif" size="2">

<%

'kolla om personen röstat

koll = Request.Cookies("votecheck")

if koll = "japp" then

%>

<%

'val av färger till med olika delarna.

vBar = "#0000FF" 'färg på mätaren som visar röster.

eBar = "#DDDDDD" 'färg på den tomma delen av mätarna.

fCol = "#FFFFFF" 'färg på ramen

bgCol = "#FFFFFF" ' färg på bakgrund

tCol = "#000000" 'färg på texten

bHeight = "10" 'höjd på mätarna

%>

<% 'On Error Resume Next

 

'räkna antalet röster

csql = "select count(*) from Votes"

set rs = conn.Execute(csql)

cnt = rs.Fields(0)

rs.close

 

'räkna antalet IDn

csql = "select count(*) from Items"

set rs = conn.Execute(csql)

items = CInt(rs.Fields(0) - 1)

rs.close

 

'skapa array för aktualla idn

dim vItems(15)

dim iNames(15)

 

'hämta dom aktualla IDn som finns

sql = "select * from Items order by ID"

set rs = conn.Execute(sql)

rs.MoveFirst

 

'skriv in aktualla Idn i arrayen

num = 0

do until rs.eof

vItems(num) = rs("ID")

iNames(num) = rs("Name")

rs.MoveNext

num = num + 1

loop

rs.close

%>

</font>

<table border="0" cellspacing="0" cellpadding="0">

<%

'hämta antal röster för vaje ID

Do until items < 0

sql = "select count(*) from Votes where vote = " & vItems(items)

set rs = conn.Execute(sql)

nofv = rs.Fields(0)

if not nofv = 0 then

nofv = rs.Fields(0)

vPerc = CInt((nofv/cnt)*100)

wVotes = CInt((nofv/cnt)*200)

wNot = CInt(200 - ((nofv/cnt)*200))

else

nofv = 0

vPerc = 0

wVotes = 0

wNot = 200

end if

Response.Write("<tr><td bgcolor='" & bgCol & "'><font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='" & tCol & "'>" & iNames(items) & ": " & vPerc & "%(" & nofv & ")</font></td></tr>")

Response.Write("<tr><td><table border='0' cellspacing='0' cellpadding='0' width='100%'><tr><td width='1' bgcolor='" & bgCol & "'><img src='none.gif' height='" & bHeight & "'></td><td width='" & wVotes & "' bgcolor='" & vBar & "'></td><td width='" & wNot & "' bgcolor='" & eBar & "'></td></tr></table></td></tr>")

rs.close

items = items - 1

loop

%>

</table>

<font face="Verdana, Arial, Helvetica, sans-serif" size="2"><br>

Totalt: <%=cnt%> röster</font>

<%

else

%>

<form action="vote.asp" method="post">

<%

sql = "select * from Items"

set rs = conn.Execute(sql)

rs.MoveFirst

Do until rs.eof

%>

<%=rs("Name")%>:<input type="radio" name="val" value="<%=rs("ID")%>"><br>

<%

rs.MoveNext

loop

%>

<br>

<input type="submit">

</form>

<% end if %>

</BODY>

</HTML>

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...