Hur ska det se ut då?
Varför byter den namn?
77 svar · 2 147 visningar · startad av Jeppeweb · sida 4 av 4
Frågan, av Jeppeweb
Microsoft OLE DB Provider for ODBC Drivers error '80040e37' \[MySQL\]\[ODBC 3.51 Driver\]\[mysqld-5.0.45-log\]Table 'wohose.Fraga' doesn't exist /admin.asp, line 107 LINE 107: conn.execute("INSERT INTO fraga (fraga,ar,vecka) VALUES('" & request.form("fraga") & "','" & request.form("ar") &"','" & request.form("vecka") &"')") Set RS=Conn.Execute("Select from Fraga Order By PollID DE
Läs frågan i sin helhet →Jeppeweb skrev:
Hur ska det se ut då?
Det hoppas jag verkligen att du hade koll på hur din kod skulle fungera.
Lägg upp koden igen(som man kan kolla din html/Cookie data) / lägg upp bilder på de olika tillfällen du får x och y tillbaka i din poll.
<%
Function RenderGraph(lPercentage,lHeight,sPictureName)
RenderGraph = "<img src=""" & sPictureName & """ style=""height:" & lHeight & "px;width:" & int(lPercentage) & "%"""">"
End Function
If Request.Querystring("do") = "vote" Then
conn.execute("Update svar Set klick=klick+1 Where id=" & Request.Form("vote"))
Response.Cookies("rostat")="JA"
Response.Cookies("rostat").Expires = date + 1
Response.Redirect sidan
Else
'voigtann1's variabler
dim sHeader, sResponseString , totalVotes
Dim RecSet
Set RecSet = conn.execute("SELECT * , svar.ID AS vID, svar.pollID as pID FROM fraga INNER JOIN svar ON svar.PollID=fraga.pollID WHERE vecka=" & DatePart("ww", Date) & " And ar =" & DatePart("yyyy", Date) & " ORDER BY fraga.PollId DESC, Svarnr ASC")
If Not RecSet.EOF Then
totalVotes = Conn.Execute("SELECT sum(klick) AS tot FROM svar WHERE pollID=" & Recset("pID"))("tot")
totalVotes = CLng(totalVotes)
sHeader = "<div id='welcometcolumn'><h1 id='vote'><a href='#' title='Visa tidigare resultat'><img src='images/poll_icon.gif' alt=''/></a> " &RecSet("fraga")&" <a href='#' title='Totalt har " & totalVotes & " röstat'> " & " " & totalVotes & "</a></h1></div><div id='votecolumn'>"
sResponseString = sResponseString & "<form action=" & sidan & "?do=vote&ID=" & Recset("vID") &" method=post>"
Do Until Recset.EOF
If Recset("klick") <> 0 Then
Procent = (CLng((recset("klick")) / totalVotes) * 100)
Else
Procent=0
End If
Antal = antal + Recset("klick")
BILD = "images/1.gif"
If Not Request.Cookies("rostat") = "JA" Then
Radio="<input type=""radio"" name='vote' value=" & recset("vID") & "> "
Knapp ="<center><br><input type=""submit"" value=""Rösta!""></center>"
End If
sResponseString = sResponseString & "<a href='#'>" &recset("svar") & " (" & left(Procent,4) & "%)</a><br>"
sResponseString = sResponseString & "<table border=""0"" width='" & bredd & "' height=""" & hojd &""">" _
& "<tr bgcolor="& Color &">" _
& "<td height='" & hojd &"' width=""100%"">" _
& "<table border=""0"" width=""100%"" height=""" & hojd &""">" _
& "<tr><td>"& Radio &"<img src=""images/start.gif"">" _
& RenderGraph(Procent,15,Bild) _
& "<img src=""images/end.gif"">" _
& "</td></tr></table>" _
& "</tr>" _
& "</table>"
Recset.MoveNext
Loop
'Vi rendera ut pollen nu
Response.Write sHeader
Response.Write sResponseString
Response.Write "<br>" & Knapp & "</form>"
Response.Write "</div>"
End If
RecSet.Close
End If
%>
Men min fråga är: vID... ska det verkligen vara det i din radio button? Vad jag ser det som så är det ju din PollId... inte ditt svars id?
Här kommer en översyn på databasen, tabell "svar".
id svarnr svar klick pollID
14 1 OMG JA! 8 21
15 2 Ja. 4 21
16 3 Nja. 0 21
Kopierade o pastade koden ovan lite snabbt, nu får jag det här felmeddelandet;
Microsoft VBScript compilation error '800a0411'
Name redefined
/poll/vote.asp, line 16
Dim RecSet
----^
Tack för hjälpen
Jeppeweb... nu får du kolla koden lite själv. Detta felmeddelande har du nog fått 3-4 gånger redan i denna tråd. Du får faktist göra lite själv.
Radio="<input type=""radio"" name='vote' value=" & recset("vID") & "> "
raden måste vara fel..
Radio="<input type=""radio"" name='vote' value=" & recset("ID") & "> "
<!--#Include file="Settings.asp"-->
<%
Function RenderGraph(lPercentage,lHeight,sPictureName)
RenderGraph = "<img src=""" & sPictureName & """ style=""height:" & lHeight & "px;width:" & int(lPercentage) & "%"""">"
End Function
If Request.Querystring("do") = "vote" Then
conn.execute("Update svar Set klick=klick+1 Where id=" & Request.Form("vote"))
Response.Cookies("rostat")="JA"
Response.Cookies("rostat").Expires = date + 1
Response.Redirect sidan
Else
'voigtann1's variabler
dim sHeader, sResponseString , totalVotes
Set RecSet = conn.execute("SELECT * , svar.ID AS vID, svar.pollID as pID FROM fraga INNER JOIN svar ON svar.PollID=fraga.pollID WHERE vecka=" & DatePart("ww", Date) & " And ar =" & DatePart("yyyy", Date) & " ORDER BY fraga.PollId DESC, Svarnr ASC")
If Not RecSet.EOF Then
totalVotes = Conn.Execute("SELECT sum(klick) AS tot FROM svar WHERE pollID=" & Recset("pID"))("tot")
totalVotes = CLng(totalVotes)
sHeader = "<div id='welcometcolumn'><h1 id='vote'><a href='#' title='Visa tidigare resultat'><img src='images/poll_icon.gif' alt=''/></a> " &RecSet("fraga")&" <a href='#' title='Totalt har " & totalVotes & " röstat'> " & " " & totalVotes & "</a></h1></div><div id='votecolumn'>"
sResponseString = sResponseString & "<form action=" & sidan & "?do=vote&ID=" & Recset("vID") &" method=post>"
Do Until Recset.EOF
If Recset("klick") <> 0 Then
Procent = (CLng((recset("klick")) / totalVotes) * 100)
Else
Procent=0
End If
Antal = antal + Recset("klick")
BILD = "images/1.gif"
If Not Request.Cookies("rostat") = "JA" Then
Radio="<input type=""radio"" name='vote' value=" & recset("ID") & "> "
Knapp ="<center><br><input type=""submit"" value=""Rösta!""></center>"
End If
sResponseString = sResponseString & "<a href='#'>" &recset("svar") & " (" & left(Procent,4) & "%)</a><br>"
sResponseString = sResponseString & "<table border=""0"" width='" & bredd & "' height=""" & hojd &""">" _
& "<tr bgcolor="& Color &">" _
& "<td height='" & hojd &"' width=""100%"">" _
& "<table border=""0"" width=""100%"" height=""" & hojd &""">" _
& "<tr><td>"& Radio &"<img src=""images/start.gif"">" _
& RenderGraph(Procent,15,Bild) _
& "<img src=""images/end.gif"">" _
& "</td></tr></table>" _
& "</tr>" _
& "</table>"
Recset.MoveNext
Loop
'Vi rendera ut pollen nu
Response.Write sHeader
Response.Write sResponseString
Response.Write "<br>" & Knapp & "</form>"
Response.Write "</div>"
End If
RecSet.Close
End If
%>
Det händer inget nu när man röster, mer än att det läggs till i räknaren..
If Recset("klick") <> 0 Then
Procent = (CLng((recset("klick")) / totalVotes) * 100)
Else
Procent=0
End If
Ser ut som att det är problemet...
Vilket jag inte förstå...
If CLng(Recset("klick")) > 0 Then
Procent = (CLng((recset("klick")) / totalVotes) * 100)
Else
Procent=0
End If
Men jag ger snart upp... försöker läsa din källkod från woho.se och jag fattar inte varför du kör x antal tabeller (fattar inte varför du kör tabeller alls).
Om jag ska vara ärlig så känns det bara som det är en person här som försöker felsöka din kod.
Jag har en känsla av att du har laddat ner koden för röstningen?
http://www.webforum.nu/showthread.php?t=87293 har en bra om jag har fattat det rätt. Prova bryt ner din kod och förstå den lite bättre. Känns som du kopiera koden jag skickar och om du får något fel så postar du det direkt utan att ens läsa felkoden.
Tabellerna var temporära..
Okej, men ett sista försök här då.
Kör med din kod.
<%
dim vResults, lTotal, voigt_pollString
vResults = Array(1,2,1) ' 3 val, val nr 2 har fått 2 svar (50% av alla som har röstat).
'Få ut totala antal röster
for i = 0 to Ubound(vResults)
lTotal = lTotal + vResults(i) ' Loopar ut så vi vet antal röster totalt (4st)
Next
Dim hojd
hojd = 15
Response.Write "Antal röster: " & lTotal & "<br>"
for i = 0 to Ubound(vResults)
Procent = CInt((vResults(i)/lTotal)* 100) ' få ut Procenten på rösterna.
Response.Write "Result " & i +1 & ": " & Procent & "% (" & vResults(i) & ")<br>" ' skriv ut ett "fint" meddelande
Response.Write RenderGraph(Procent, hojd, "http://www.woho.se/images/1.gif") & "<br>" ' Anropar RenderGraph se funktion nedan.
Next
Function RenderGraph(lPercentage,lHeight,sPictureName)
dim lWidth
If Int(lPercentage) = 100 And Request.Cookies("rostat") = "JA" Then
lWidth = 98
Else
lWidth = int(lPercentage)
End If
RenderGraph = "<img src=""" & sPictureName & """ style=""height:" & lHeight & "px;width:" & lWidth & "%"""">"
End Function
%>
Microsoft VBScript runtime error '800a01f5'
Illegal assignment: 'I'
/poll/vote.asp, line 5
varför kör en exempel kod? Och om du ska göra det så kör endast exempel koden (då den inte ens är kopplad till någon databas anslutning). Kör din SQL, skit i layouten. Se till och kolla vilken data du får ut innan du försöker göra grafiska "snyggheter" av det.
Illegal assignment: 'I' i någon av dina include filer som du har så har du satt I som något annat än ett tal.
Alltså, felet ligger här..
Dim totalVotes
totalVotes = Conn.Execute("SELECT sum(klick) AS tot FROM svar WHERE pollID=" & Recset("pID"))("tot")
totalVotes = CLng(totalVotes)
Response.Write "<div id='welcometcolumn'><h1 id='vote'><a href='#' title='Visa tidigare resultat'><img src='images/poll_icon.gif' alt='' /></a>" & RecSet("fraga") & Antal & Knapp & "</h1></div><div id='votecolumn'>"
Do Until Recset.EOF
If Recset("klick") <> 0 Then
Procent = (CLng((recset("klick")) / totalVotes) * 100)
Else
Procent=0
End If
Antal = Recset("klick") + antal
x = x + 1
Select Case x
Case 1: BILD = "1.gif"
Case 2: BILD = "1.gif"
Case 3: BILD = "1.gif"
Case 4: BILD = "1.gif"
End Select
Den visar inte det grafiska korrekt. All data i databasen fungerar korrekt.
Såhär såg orginalkoden ut i början, när den var kopplad till en access databas.
Set Rs = Conn.Execute("Select Sum(klick) as Tot From Svar Where pollID=" & Recset("pID"))
Response.write "<b>" & RecSet("fraga") & "</b><br>"
Do Until Recset.EOF
IF Recset("klick")<>0 then
Procent = ((recset("klick") / rs("tot"))*100)
Else
Procent=0
End if
Antal=Recset("klick")+antal
x=x+1
Select Case x
Case 1: BILD="1.gif"
Case 2: BILD="2.gif"
Case 3: BILD="3.gif"
Case 4: BILD="4.gif"
END SELECT
Nej. Felet endast:
IF Recset("klick")<>0 then
Procent = ((recset("klick") / rs("tot"))*100)
Else
Procent=0
End if
Eftersom den inte den inte skriver ut din % helt.
Jag börja tror att din klick beter sig lite som Access PM brukar göra..
voteClick = CLng(Recset("klick"))
inne i din do until recset.eof
och använd voteClick på alla ställen där RecSet("Klick") är.
Microsoft VBScript compilation error '800a0401'
Expected end of statement
/poll/vote.asp, line 19
Procent = voteClick = CLng(Recset("klick")) / totalVotes) * 100)
--------------------------------------------------------^
Procent = voteClick = (CLng(Recset("klick")) / totalVotes) * 100)
... inte alls det jag skriver att du ska göra....
Exempel:
voteClick = Recset("klick")
IF voteClick<>0 then
Procent = ((voteClick / totalVotes)*100)
Else
Procent=0
End if
Jeppeweb skrev:
svar.ID och pID har samma data, bara att de ligger i två olika tabeller i databasen
Det hoppas jag verkligen inte att du ha. svar.id är ditt svars ID och pollId(pId) är vilken poll den är just nu på. Du använder inte ens den datan som skrivs i den requesten som du skickar. Varför ha den kvar alls?
Så länge det fungera så...

