Avatar billede cotus Nybegynder
14. juni 2002 - 19:43 Der er 9 kommentarer og
1 løsning

Nyeste afstemning

Jeg har en afstemning som kører på en Access-Database... hvert spørgsmål har sin ID i databasen, som f.eks. 1, og når jeg vil have vist denne afstemning, inkluderer jeg <% Stem(1) %>, men... jeg gider ikke hver gang jeg har tilføjet et NYT spørgsmål, at gå ind og rette i koden - så jeg tænkte: Hvis jeg nu skriver:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/mode/db/community.mdb")
Conn.Open DSN
%>
<%
strNyAfstemningSQL = "SELECT TOP 1 * FROM afstemning ORDER BY id DESC"
Set rsNyAfstemning = Conn.Execute(strNyAfstemningSQL)

Do

NA = rsNyAfstemning("id")

rsNyAfstemning.MoveNext
Loop while not rsNyAfstemning.EOF

rsNyAfstemning.Close
Set rsNyAfstemning = Nothing
%>

, i toppen, burde jeg så ikke kunne skrive:

<% Stem( & NA &) %>

MEN nej, det kunne jeg ikke - så HVAD gør jeg så, for at få hevet den nyeste afstemning ud af min database?

På forhånd tak...

/cotus
Avatar billede soes Nybegynder
14. juni 2002 - 19:46 #1
hvad med det højeste nummer i din autonummering hvis du har sådan en?

/Søren Søndergård
Avatar billede eagleeye Praktikant
14. juni 2002 - 19:47 #2
Bare skriver:  <% Stem(NA) %>
Avatar billede eagleeye Praktikant
14. juni 2002 - 19:51 #3
Du behøver eller bør ikke lave et loop da du vil havde den nyeste id ud.
Hvis du vil gøre noget bør det måske være at tjekke du får en ID tilbage..:

if rsNyAfstemning.EOF then
  'danm ikke noget at stemme på
  NA = ""
else
  NA = rsNyAfstemning("id")
end if
rsNyAfstemning.Close
Set rsNyAfstemning = Nothing

<%
if NA <> "" then
  Stem(NA)
end if
%>
Avatar billede cotus Nybegynder
14. juni 2002 - 20:02 #4
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/mode/db/community.mdb")
Conn.Open DSN
%>
<%
strNyAfstemningSQL = "SELECT TOP 1 * FROM afstemning ORDER BY id DESC"
Set rsNyAfstemning = Conn.Execute(strNyAfstemningSQL)

if rsNyAfstemning.EOF then
  'danm ikke noget at stemme på
  NA = ""
else
  NA = rsNyAfstemning("id")
end if
rsNyAfstemning.Close
Set rsNyAfstemning = Nothing
%>
Det her i toppen...


Og der hvor jeg vil have afstemningen: <%
if NA <> "" then
  Stem(NA)
end if
%>

Eller hva?
Avatar billede eagleeye Praktikant
14. juni 2002 - 20:05 #5
Ja det skulle gerne virker.
Avatar billede cotus Nybegynder
14. juni 2002 - 20:10 #6
Øhm... det viser bare fem stemmebokse, men ikke noget tekst ud for? Når jeg ser i koden viser den:

<tr><td valign="top" align="center" height="22">&nbsp;</td>
<td><span class="preview">
<font size='2' face='Verdana'>Hvad synes du om Donaldisten.dk?<html><head><title>Stem</title></head><body><form method='POST' action='stemreg.asp'><input type='hidden' name='Voteid' value=4><input type='radio' value='' name='R1'><br><input type='radio' value='' name='R1'><br><input type='radio' value='' name='R1'><br><input type='radio' value='' name='R1'><br><input type='radio' value='' name='R1'><br><p>&nbsp;<input type='submit' value='Stem' name='B1'>&nbsp;&nbsp; <input type='reset' value='Slet' name='B2'></p></form></body></html>
</span></td></tr>
Avatar billede cotus Nybegynder
14. juni 2002 - 20:11 #7
----------Stem.inc----------
<%
' --------------------------------------------------------------
' Function Stem(id) - id = id i stem.mdb
' --------------------------------------------------------------
function stem(id)

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

  Set RsVote = Server.CreateObject("ADODB.Connection")
  DBPath = "DBQ=" & server.mappath("/mode/db/community.mdb")
  RsVote.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

  Sql = "Select * from T_Vote where Id = " & id
  Set Record =  RsVote.Execute(Sql)
  If Not Record.EOF then
    If (Len(Request.Cookies("stem")(CSTR(id))))  then
      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 font & Record("Beskrivelse")  & "<br><br>"

      Sql = "Select count(*) as Found from T_VoteResult where VoteId = " & id
      Set Record =  RsVote.Execute(Sql)
      Ialt = Record("found")

      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 = " & id & " and vote = '" & Valg(i) & "'"
          Set Record = RsVote.Execute(Sql)
          Procent = 100/Ialt * Record("Found")
          response.write "<td>" & font & Valg(i) & "</td><td>" & font & Round(procent) & "%</td><td><hr width='" & Procent * faktor & "' size='10' align='left' color='" & barcolor & "'></td></tr>"
        end if
      Next
      Response.Write "</table></div>"
    else
      session("retur") = Request.ServerVariables("SCRIPT_NAME")
      response.write font & Record("Beskrivelse")
      response.write "<html><head><title>Stem</title></head><body>"
      response.write "<form method='POST' action='stemreg.asp'>"
      response.write "<input type='hidden' name='Voteid' value=" & Id & ">"
      If Record("Valg1") <> "" then
        response.write "<input type='radio' value='" & Record("Valg1") & "' name='R1'>" & Record("Valg1") & "<br>"
      end if 
      If Record("Valg2") <> "" then
        response.write "<input type='radio' value='" & Record("Valg2") & "' name='R1'>" & Record("Valg2") & "<br>"
      end if
      If Record("Valg3") <> "" then
        response.write "<input type='radio' value='" & Record("Valg3") & "' name='R1'>" & Record("Valg3") & "<br>"
      end if
      If Record("Valg4") <> "" then
        response.write "<input type='radio' value='" & Record("Valg4") & "' name='R1'>" & Record("Valg4") & "<br>"
      end if
      If Record("Valg5") <> "" then
        response.write "<input type='radio' value='" & Record("Valg5") & "' name='R1'>" & Record("Valg5") & "<br>"
      end if
      response.write "<p>&nbsp;<input type='submit' value='Stem' name='B1'>&nbsp;&nbsp; <input type='reset' value='Slet' name='B2'></p>"
      response.write "</form></body></html>"
    end if
  else
    response.write font & "Id findes ikke!!!"
  end if
end function
%>
Avatar billede cotus Nybegynder
14. juni 2002 - 20:12 #8
----------Stemreg.asp----------
<%
  ' --------------------------------------------------------------
  ' Opdater T_VoteResult hvis der er sat kryds
  ' --------------------------------------------------------------
  If Request("R1") <> "" then
    Response.Cookies("stem")(Request("Voteid")) = "x"
    Set RsVote = Server.CreateObject("ADODB.Connection")
    DBPath = "DBQ=" & server.mappath("/mode/db/community.mdb")
    RsVote.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
    Sql = "Insert into T_Voteresult (Voteid, Vote, Ip) values('" & Request("Voteid") & "','" & Request("R1") & "','" &  Request.ServerVariables("REMOTE_ADDR") & "')"
    RsVote.Execute(Sql)
  end if
  Response.redirect session("retur")
%>
Avatar billede eagleeye Praktikant
14. juni 2002 - 20:20 #9
i den ene hedder tabellen Afstemning i den anden hedder tabellen T_Vote er det ritigt ?
Avatar billede cotus Nybegynder
14. juni 2002 - 20:22 #10
Nu fungerer det... det var en simpel database-fejl! :)
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