Avatar billede cyberkox Nybegynder
16. april 2002 - 17:09 Der er 24 kommentarer og
1 løsning

Tæller antal stemmer

Hejza......
Her har jeg et Afstemnings script i ASP. Den består af følgende kode og så en MS ADB.

<%
Response.Buffer = True

font    = "<font size='2' face='Verdana'>"
faktor  = 1
barcolor = "#206090"

  ' *******************************************************
  ' * DSN Less, vote.mdb i samme katalog som vote.asp    *
  ' *******************************************************
  Set Rs = Server.CreateObject("ADODB.Connection")
  DBPath = "DBQ=" & server.mappath("vote.mdb")
  Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

  ' *******************************************************
  ' * Opdaterer T_Voteresult og laver der efter en        *
  ' * redirect til resultatet                            *
  ' *******************************************************
  If (Request.ServerVariables("Content_length") > 0) then
    Sql = "Insert into T_Voteresult (Voteid, Vote, Ip) values('" & Request("Voteid") & "','" & Request("R1") & "','" &  Request.ServerVariables("REMOTE_ADDR") & "')"
    Rs.Execute(Sql)
    Response.redirect Request.ServerVariables("SCRIPT_NAME") & "?id=" & Request("Voteid")
  end if
  end if

  ' *******************************************************
  ' * Viser resultat                                      *
  ' *******************************************************
  If "" <> Request.QueryString("id") then
    If "" = Request.QueryString("mode") then
      Sql = "Select * from T_Vote where Id = " & Request.QueryString("Id")
      Set Record =  Rs.Execute(Sql)
      Dim Valg(5)
      valg(1) = Record("valg1")
      valg(2) = Record("valg2")
      valg(3) = Record("valg3")
      valg(4) = Record("valg4")
      valg(5) = Record("valg5")
            response.write"<CENTER><B>"
      response.write font & Record("Beskrivelse")  & "<br><br>"
            response.write"</CENTER></B>"
      Sql = "Select count(*) as Found from T_VoteResult where VoteId = " & Request.QueryString("Id")
      Set Record =  Rs.Execute(Sql)
      Ialt = Record("found")
      response.write "<SCRIPT TYPE='text/javascript' SRC='http://www.cyber-kox.subnet.dk/Skript/Hklikmenu.js'></SCRIPT>"
      response.write "<SCRIPT TYPE='text/javascript' SRC='http://www.cyber-kox.subnet.dk/Skript/banner.js'></SCRIPT>"
      response.write "<LINK REL='stylesheet' HREF='http://www.cyber-kox.subnet.dk/CSS/Cyber-Tema.css' TYPE='text/css'>"
      Response.Write "<STYLE TYPE='text/css'>HR.hr{height:5;}</STYLE>"
      Response.Write "<div align='left'><table border='0'><tr>"
      For i = 1 to 5
        If valg(i) <> "" then
          Sql = "Select count(*) as Found from T_VoteResult where VoteId = " & Request.QueryString("Id") & " and vote = '" & Valg(i) & "'"
          Set Record = Rs.Execute(Sql)
          Procent = 100/Ialt * Record("Found")
          response.write "<td HEIGHT='35' width='150'>" & font & Valg(i) & "</td><td HEIGHT='35' width='50'>" & font & Round(procent) & "%</td><td HEIGHT='35'><hr class='hr' width='" & Procent * faktor & "' size='10' align='left' color='" & barcolor & "'></td></tr>"
        end if
      Next
      Response.Write "</table></div>"
    end if
   
    ' *******************************************************
    ' * Hvis mode = vote, opbygges "stemmeseddel"          *
    ' *******************************************************
    If "vote" = Request.QueryString("mode") then
      Sql = "Select * from T_Vote where Id = " & Request.QueryString("Id")
      Set Record =  Rs.Execute(Sql)
            response.write"<CENTER><B>"
      response.write font & Record("Beskrivelse")  & "<br><br>"
            response.write"</CENTER></B>"
      response.write "<html><head>"
      response.write "<SCRIPT TYPE='text/javascript' SRC='http://www.cyber-kox.subnet.dk/Skript/Hklikmenu.js'></SCRIPT>"
      response.write "<SCRIPT TYPE='text/javascript' SRC='http://www.cyber-kox.subnet.dk/Skript/banner.js'></SCRIPT>"
      response.write "<LINK REL='stylesheet' HREF='http://www.cyber-kox.subnet.dk/CSS/Cyber-Tema.css' TYPE='text/css'>"
      response.write "<title>Stem</title></head><body>"
      response.write"<Table><TR><TD>"
      response.write "<form method='POST' action='" & Request.ServerVariables("SCRIPT_NAME") & "'>"
      response.write "<input type='hidden' name='Voteid' value=" & Request.QueryString("Id") & ">"
      If Record("Valg1") <> "" then
        response.write "<input type='radio' class='felt' value='" & Record("Valg1") & "' name='R1'>""&nbsp;&nbsp;" & Record("Valg1") & "<br>"
      end if 
      If Record("Valg2") <> "" then
        response.write "<input type='radio' class='felt' value='" & Record("Valg2") & "' name='R1'>""&nbsp;&nbsp;" & Record("Valg2") & "<br>"
      end if
      If Record("Valg3") <> "" then
        response.write "<input type='radio' class='felt' value='" & Record("Valg3") & "' name='R1'>""&nbsp;&nbsp;" & Record("Valg3") & "<br>"
      end if
      If Record("Valg4") <> "" then
        response.write "<input type='radio' class='felt' value='" & Record("Valg4") & "' name='R1'>""&nbsp;&nbsp;" & Record("Valg4") & "<br>"
      end if
      If Record("Valg5") <> "" then
        response.write "<input type='radio' class='felt' value='" & Record("Valg5") & "' name='R1'>""&nbsp;&nbsp;" & Record("Valg5") & "<br>"
      end if
      response.write "<p>&nbsp;<input type='submit' class='button'  value='Stem' name='B1'>&nbsp;&nbsp; <input type='reset' class='button' value='Slet' name='B2'></p>"
      response.write"</TD></TR></Table>"
      response.write "</form></body></html>"
    end if
  end if
%>

Mit spørgesmål er nu, hvordan jge får det til, at stå hvor mange der har stemt.
Avatar billede kimiwan Nybegynder
16. april 2002 - 17:38 #1
kan du virkelig køre den side fejlfrit?  (altså uden visning af antal stemmer afgivet)
Avatar billede cyberkox Nybegynder
16. april 2002 - 17:39 #2
Er der ingen der ved noget ?
Avatar billede cyberkox Nybegynder
16. april 2002 - 17:40 #3
Jo, det kan jeg sagtens, men jeg synes det ville være smart at vise antallet af stemmer.......
Avatar billede kimiwan Nybegynder
16. april 2002 - 17:45 #4
du kan jo altid lave et ekstra kald til databasen - jeg går ud fra, du gemmer stemmerne sådan her ca:

valg  stemmer
1      20
2      21
3      100
4      2

så kan du sige "SELECT SUM(stemmer) AS StemmerIalt FROM tabelnavn"

det med at skrive det på siden ser du ud til at have styr på selv :o)
Avatar billede cyberkox Nybegynder
16. april 2002 - 17:49 #5
Der ligger problemmet.

Min tabel ser ikke ud som din. Det er lang tid siden, at jeg har fundet det et eller andet sted på nettet, og den er lidt mærkelig.

Kender du ikke en god afstemning i ASP og MS ADB, som tæller stemmerne sammen ?
Avatar billede kimiwan Nybegynder
16. april 2002 - 17:53 #6
de eneste afstemningsscripts, jeg kender godt, er dem, jeg selv har lavet, sorry.

men når du nu har sat det hele op til den afstemning her, kan det jo være, der er en nem løsning til at finde ud af, hvor mange, der har stemt :o)

hvordan ser din tabel ud?  hvordan gemmer du afstemningsresultaterne m.m.?
Avatar billede cyberkox Nybegynder
16. april 2002 - 17:58 #7
Er du smuttet ?
Avatar billede cyberkox Nybegynder
16. april 2002 - 18:01 #8
Kan du ikke bare downloade tabellen og se den ?

Du kan downloade den her:
www.friserverplads.dk/cyberkox/poll/vote.mdb

Den du har lavet, tæller de stemmerne op ?
Avatar billede cyberkox Nybegynder
16. april 2002 - 18:02 #9
Hov, jeg glemmer da vist at opdatere ;-]
Avatar billede kimiwan Nybegynder
16. april 2002 - 18:12 #10
eller er det en frit for, om man vil udfylde spørgsmål 1, 2, 3 eller 4?
Avatar billede cyberkox Nybegynder
16. april 2002 - 18:12 #11
Nå, jeg skal ned og spise.

Men hvis du kommer med et forslag, kan du jo bare skrive det....
        _
Hyg dig :_-]
Avatar billede kimiwan Nybegynder
16. april 2002 - 18:12 #12
besvarer/stemmer man kun på 1 spørgsmål ad gangen, eller kan man godt vælge flere?
Avatar billede cyberkox Nybegynder
16. april 2002 - 18:14 #13
Har du downloadet databasen ?

De kan du se det hele
Avatar billede cyberkox Nybegynder
16. april 2002 - 18:15 #14
Avatar billede kimiwan Nybegynder
16. april 2002 - 18:20 #15
hehe.. der er fejl i siderne, så jeg kan ikke se det nu.. kigger tilbage igen lidt senere :o)
Avatar billede phineas_phreak Nybegynder
16. april 2002 - 22:24 #16
prøv det her ;)

strSQL = "SELECT COUNT(ID) AS Antal FROM tabelnavn"
Set rs = myConn.Execute(strSQL)
Response.Write "" & rs("Antal") & " personer har stemt<br>"
Avatar billede cyberkox Nybegynder
17. april 2002 - 15:38 #17
Prøv nu. Det var bare fordi du skulle vælge mellem ID'erne. Adr. skal være uden '/'

www.friserverplads.dk/cyberkox/poll/vote.asp?id=1
www.friserverplads.dk/cyberkox/poll/vote.asp?id=1&mode=vote
Avatar billede cyberkox Nybegynder
17. april 2002 - 16:00 #18
phineas_phreak ->

Det virker ikke.....
Avatar billede kimiwan Nybegynder
17. april 2002 - 16:05 #19
SELECT COUNT(id) AS Antal FROM t_voteresult WHERE voteid = " & request("voteid")
Avatar billede kimiwan Nybegynder
17. april 2002 - 16:07 #20
kør evt. den her i query analyzer og se om ikke resultatet passer:

SELECT COUNT(id) AS Antal FROM t_voteresult WHERE voteid = 2
Avatar billede cyberkox Nybegynder
17. april 2002 - 16:10 #21
Hvor vil du mene at linjen skal ind i kildekoden ?
Avatar billede cyberkox Nybegynder
17. april 2002 - 16:27 #22
Jeg kan ikke helt få det til at virke.....
Avatar billede cyberkox Nybegynder
17. april 2002 - 16:33 #23
Er du smuttet ?
Avatar billede cyberkox Nybegynder
17. april 2002 - 16:33 #24
Hvis du har tid, kan du så ikke lige hjælpe mig med dette spørgsmål ?
http://www.eksperten.dk/spm/199041
Avatar billede cyberkox Nybegynder
03. maj 2002 - 13:29 #25
Nå, jeg har fundet ud af det, fra dette spørgsmål:
http://www.eksperten.dk/spm/204801
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester