webForumDet fria alternativet

Nollställ.?

ASP

6 svar · 190 visningar · startad av cgi

Medlem sedan jan. 2000371 inlägg
Frågan#1

Har ett röstningssystem på sidan, men vet ej hur man nollställer scriptet.???
Så här ser koden ut:


<% 
' Här skapar vi en dsn-less connection mot vote.asp
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("vote.mdb")
Connect.Open DSNtemp
%>

<%
'Two varibles are passed into the db
'u_input is the value if the user entered a response to
'the vote/poll question....IP is the address of the user
u_input=request.form("u_input")
u_ip=request.servervariables("remote_addr")

' if the user did not enter anything in the poll on this visit
' then display the poll question and possible choices
if u_input = "" then
%>

<form method="post" action="<%= request.servervariables("script_name") %>">

<%
else
' if the user did input a choice on the vote/ballot
' check to see if their ip address is already in the db
accessdb="votes_db" 
cn="driver={Microsoft Access Driver (*.mdb)};"
cn=cn & "dbq=" & server.mappath(accessdb)
set rs = server.createobject("ADODB.Recordset")
sql = "select ip from ballot where ip ='" & u_ip & "'"

rs.Open sql, cn
if rs.eof then
' if the user has not voted previously indicate it
been_here_before="No"
end if
rs.close

if been_here_before = "No" then
' Since the user has not voted previously their input
' their vote will be added to the db

sql = "insert into ballot (ip, selection" & u_input &") "
sql = sql & "values ('" & u_ip & "',1)"
rs.Open sql, cn
end if

'This will summerize and count the records in the db
sql= "select distinctrow sum(selection1) as sum_selection1, " 
sql= sql & "sum(selection2) AS sum_selection2, sum(selection3) AS sum_selection3, "
sql= sql & "sum(selection4) AS sum_selection4, count(*) AS total_votes "
sql= sql & "FROM ballot;"
rs.Open sql, cn
total1=rs ("sum_selection1")
total2=rs ("sum_selection2")
total3=rs ("sum_selection3")
total4=rs ("sum_selection4")
count=rs ("total_votes")
%>
A<img src="red.jpg" height="10" width="<%= (total1/count)*100 %>">
<%= formatnumber((total1/count)*100,1)  %>%<br>
B<img src="yellow.jpg" height="10" width="<%= (total2/count)*100 %>">
<%= formatnumber((total2/count)*100,1)  %>%<br>
C<img src="green.jpg" height="10" width="<%= (total3/count)*100 %>">
<%= formatnumber((total3/count)*100,1)  %>%<br>
D<img src="blue.jpg" height="10" width="<%= (total4/count)*100 %>">
<%= formatnumber((total4/count)*100,1)  %>%<br>
Totalt har: <%= formatnumber(count,0,0) %>st röstat.<br>
 
<% if been_here_before <> "No" then %>
OBS! du har röstat förut så den här rösten räknades <u>inte</u> 
<% else %>
Din röst har laggts till....
<% end if %>
<br>
Din IP address <%= u_ip %>
<% end if %>

Tacksam för hjälp.

Medlem sedan maj 2000755 inlägg
#2

Töm databasen (vote.mdb)

Medlem sedan jan. 2000371 inlägg
#3

Visst skulle jag kunna göra det, men nu är det så här att databasen inte går att öppna på nåt konstigt sätt.
Fråga mig inte varför.

Medlem sedan mars 2000263 inlägg
#4

databasen är kanske en access 2000 databas, och du har kanske bara access97.
DELETE * FROM poll borde väl funka?

------------------
/bohlin

Medlem sedan jan. 2000371 inlägg
#5

Vad menar du med DELETE * FROM poll.???

Medlem sedan mars 2000263 inlägg
#6

gör en ny fil, tex töm_databas.asp och stoppa i denna koden...borde funka.

Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("vote.mdb")
Connect.Open DSNtemp
set rs = server.createobject("ADODB.Recordset")
sql = "DELETE * FROM poll"
rs.Open sql, connect

------------------
/bohlin

Medlem sedan jan. 2000371 inlägg
#7

Nej du det funkar inte.

281 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
140 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
144 ms — ändringar (db)