Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ellen

Enquete

Recommended Posts

Olá...Pessoal, não estou conseguindo terminar minha enquete.... alguem pode me ajudar, por favor???EStá dando um erro:enquete.asp

<%'define as variáveis que serão usadas na códigodim ja_votou , u_input , cn , rs , sql , u_ip , contador , total_votos'Duas variáveis são passadas gravadas no banco de dados'u_input = é o valor se o usuario entrou uma resposta para a questão'IP = é o endereço IP do usuariou_input=request.form("u_input")'pega o endereço IP do usuariou_ip=request.servervariables("remote_addr")' Se o usuário não entrou um valor para a questão então vamos mostrar ' a questão a relação de opções possíveis para respostaif u_input = "" then%><form method="post" action="enquete_resp.asp"> <p><font color="#0033FF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong> Você gostaria que o site tivesse mais artigos sobre:</strong></font></p> <p> <font face="Verdana, Arial, Helvetica, sans-serif"> <strong> <input type="radio" value="1" name="u_input"> <font color="#0033FF">vb script:window.close()">Fechar</a></font></a></font></b></p></form><%else' Se o usuario entrou uma escolha na enquete' verifica se o seu IP já foi registrado no BD 'Usei um provedor OLE DB para efetuar a conexão com o banco de daos enquetes.mdb'poderia ter usado cn="driver={Microsoft Access Driver (*.mdb)};" mas não a performance do provedor OLE DB é melhorcn= "Provider=SQLOLEDB.1;Password=xxx;Persist Security Info=True;User ID=x;Initial Catalog=x;Data Source=xxx"'criei um recordset ADO e selecionei o número ip da tabela enquete1 que fosse igual ao ip do usuário atualset rs = server.createobject("ADODB.Recordset")sql = "select ip from votos where ip ='" & u_ip & "'"'executei a consulta sql rs.Open sql, cn'se o recordset estiver vazio o usuário ainda não votouif rs.eof then ' Se o usuario nao votou antes beleza atribuo o valor No a variável ja_votou ja_votou="No"end if'fecha o recordsetrs.closeif ja_votou = "No" then ' Se o usuario não votou então vamos gravar o voto no bd usando uma instrução SQL INSERT INTO sql = "insert into votos (ip, opcao" & u_input &") " sql = sql & "values ('" & u_ip & "',1)" 'efetiva a gravação no banco de dados rs.Open sql, cnend if'Vamos fazer um resumo e a estatistica dos votos por opção e calcular o total de votossql= "select sum(opcao1) as soma_opcao1, " sql= sql & "sum(opcao2) AS soma_opcao2, sum(opcao3) AS soma_opcao3, count(*) AS total_votos "sql= sql & "FROM votos;"rs.Open sql, cn'totaliza os votos por opção e armazena nas variáveis definidastotal1=rs ("soma_opcao1")total2=rs ("soma_opcao2")total3=rs ("soma_opcao3")'obtem o total de votos do recodset geradocontador=rs ("total_votos")end if%>

enquete_resp.asp

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="56%" id="AutoNumber1"> <tr> <td width="136%" bgcolor="#FFFFFF" align="left" colspan="3"> <font color="#0033FF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong> Você gostaria que o site tivesse mais artigos sobre:</strong></font></td> </tr> <tr> <td width="136%" bgcolor="#E8E8E8" align="left"><strong> <font face="Verdana" size="1" color="#0033FF">   opção         </font></strong></td> <td width="27%" bgcolor="#E8E8E8" align="left"> <p align="left"><font face="Verdana" size="1" color="#0033FF"><strong> Votos   </strong></font></td> <td width="75%" bgcolor="#E8E8E8" align="left"><strong style="font-weight: 400"><font face="Verdana" size="1">   Percentual</font></strong></td> </tr> <tr> <td width="136%"> <font face="Verdana, Arial, Helvetica, sans-serif" color="#0033FF"> <strong> VB 5/6</strong></font></td> <td width="27%"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0033FF"><%=total1%></font></td> <td width="75%"><font face="Verdana" size="2"><strong style="font-weight: 400">  <img src="images/red.jpg" height="10" width="<%= (total1/contador)*100 %>"> <%= formatnumber((total1/contador)*100,1) %>%    </strong></font></td> </tr> <tr> <td width="136%"> <font face="Verdana, Arial, Helvetica, sans-serif"> <strong> <font color="#0033FF">VB .NET   </font></strong></font></td> <td width="27%"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0033FF"><%=total2%></font></td> <td width="75%"><font face="Verdana" size="2"><strong style="font-weight: 400">  <img src="images/yellow.jpg" height="10" width="<%= (total2/contador)*100 %>"> <%= formatnumber((total2/contador)*100,1) %>%    </strong></font></td> </tr> <tr> <td width="136%"> <font face="Verdana, Arial, Helvetica, sans-serif"> <strong> <font color="#0033FF">ASP         </font></strong></font></td> <td width="27%"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0033FF"><%=total3%></font></td> <td width="75%"><font face="Verdana" size="2"><strong style="font-weight: 400"> <img src="images/green.jpg" height="10" width="<%= (total3/contador)*100 %>"> <%= formatnumber((total3/contador)*100,1) %>%   </strong></font></td> </tr></table><br><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Total dos Votos : <%= formatnumber(contador,0,0) %></font><p> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <% if ja_votou <> "No" then %> Você já votou !!! seu voto <b>NÃO</b> foi contado. <% else %> </font></p> <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Obrigado por participar !! <% end if %> </font></p>

Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe... esqucei de colocar o erro...Microsoft VBScript runtime error '800a0006'Overflow/espelho/graduacao_curso/enquete/enquete_resp.asp, line 22 linha 22: "<%= (total1/contador)*100 %>"> <%= formatnumber((total1/contador)*100,1) %>%    </strong></font></td>Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

total1 e contador possivelmente estão nulos, não tem em nenhum trecho passagem de valorers para essas variaveis no código da página enquete_resp.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Encontrei a página que explica este código.... lá eles colocam em uma página só..... no caso só a enquete...

 

http://www.macoratti.net/asp_enq1.htm

 

Mas mesmo assim continua dando erro.:

 

Microsoft VBScript runtime error '800a000d'

 

Type mismatch: 'formatnumber'

 

/espelho/graduacao_curso/enquete/enquete.asp, line 104

 

Linha 104: "<%= (total1/contador)*100 %>"> <%= formatnumber((total1/contador)*100,1) %>%    </strong></font></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique o conteudo das variaveis antes de efetuar o calculo e uso da função para ver se o valor é compativel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Princesa,

 

O acho jonathandj têm razão.

 

Excute o código e post o resultado aqui:

<%response.write "total1 = " & total1 & "<br>"response.write "contador= " & contador & "<br>"%>
Se o conteúdo das variáveis estiverem ok então efetue:

<%response.write "total1 = " & total1 & "<br>"response.write "contador= " & contador & "<br>"response.write "operação= " & (total1/contador)*100 & "<br>"%>
Vamso ver que temos no conteúdo das variáveis.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi jothazDeu certo agora... em partes...Qdo aparece o formulário para a pessoa votar, logo abaixo tbem aparece o resultado com a porcentagem, porém lá tem o erro:Microsoft VBScript runtime error '800a0006'Overflow/admin/enquete.asp, line 129 Linha 129: "<%= (total1/contador)*100 %>"> <%= formatnumber((total1/contador)*100,1) %>%    </strong></font></td>Mas se a pessoa votar, o formulário some e a mesma tabela aparece correta.E agora?Agradeço a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Princesa,

 

Me parece que o problema é qdo o contador ou total1 é igual a 0 (zero).

 

Faça o seguinte teste:

<%if contador = 0 or total1 = 0 then	  '	  ' Se contador for zero você pode fixar a msg	  'else	 resultado = formatnumber((total1/contador)*100,1) end if%><%=resultado%>
Faça o teste por favor.

 

 

No aguardo!

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma olhada de como ficou...Assim que você votar, tudo aparece correto.....Só que eu queria apresentar a tabela de porcentagem tbem antes da pessoa votar...Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

OLá...Meu código está em um arquivo só....Estava pensando em dividir: um com a enquete, e outra só com a tabela de resposta... mas como faço para passar as informações para o arquivo de resposta (o quemostra a porcentagem), daí tiraria o erro, não é?Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Princesa,

 

Pq você não tenta assim:

<%if contador = 0 or total1 = 0 then	 percentual = 0else	 percentual = formatnumber((total1/contador)*100,1)end if%>
E depois utilize a variavel percentual para montar o html.

 

Pq veja bem se contador ou o total1 for de conteúdo igual a zero não têm percentual.

 

Como você postou suas variávies estão assim:

total1 = 0contador= 1operação= 0
Por isso qdo você efetua a operação: formatnumber((total1/contador)*100,1) retorna o erro Overflow.

 

Por isso por favro tente implementar o IF que sugeri e post o resultado.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Princesa,Acho q terás de postar o código msm para facilitar.Agora você entendeu o que esta acontecendo?É pq total1 tá igual a 0 por isso na hora de efetuar o formatnumber dá erro.Post o código por favor.t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai.. está meu código...Aqui ele está em um arquivo só, mas estou pensando em colocar separado (votar/tabela de resultados)

<%'define as variáveis que serão usadas na códigodim ja_votou , u_input , cn , rs , sql , u_ip , contador , total_votos'Duas variáveis são passadas gravadas no banco de dados'u_input = é o valor se o usuario entrou uma resposta para a questão'IP = é o endereço IP do usuariou_input=request.form("u_input")'pega o endereço IP do usuariou_ip=request.servervariables("remote_addr")' Se o usuário não entrou um valor para a questão então vamos mostrar' a questão a relação de opções possíveis para respostaif u_input = "" then%><form method="post" action="<%= request.servervariables("script_name") %>"> <p><font color="#0033FF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong> Escolha a imagem:</strong></font></p> <p> <font face="Verdana, Arial, Helvetica, sans-serif"> <strong> <input type="radio" value="1" name="u_input"> <font color="#0033FF"><img src="../../imagens/img_enquete/9e7bfaa248.jpg" width="188" height="154" /><br> <input type="radio" value="2" name="u_input" > <img src="../../imagens/img_enquete/946a0269c5.jpg" width="188" height="154" /> <br> <input type="radio" value="3" name="u_input" checked> <img src="../../imagens/img_enquete/af0f36d869.jpg" width="188" height="154" /> <br> </font></strong></font></p> <p> <input type="submit" value="Enviar" > </p></form><%else' Se o usuario entrou uma escolha na enquete' verifica se o seu IP já foi registrado no BD'Usei um provedor OLE DB para efetuar a conexão com o banco de daos enquetes.mdb'poderia ter usado cn="driver={Microsoft Access Driver (*.mdb)};" mas não a performance do provedor OLE DB é melhorcn= "Provider=SQLOLEDB.1;Password=xxx;Persist Security Info=True;User ID=x;Initial Catalog=x;Data Source=xxx"'criei um recordset ADO e selecionei o número ip da tabela enquete1 que fosse igual ao ip do usuário atualset rs = server.createobject("ADODB.Recordset")sql = "select ip from votos where ip ='" & u_ip & "'"'executei a consulta sqlrs.Open sql, cn'se o recordset estiver vazio o usuário ainda não votouif rs.eof then' Se o usuario nao votou antes beleza atribuo o valor No a variável ja_votouja_votou="No"end if'fecha o recordsetrs.closeif ja_votou = "No" then' Se o usuario não votou então vamos gravar o voto no bd usando uma instrução SQL INSERT INTOsql = "insert into votos (ip, opcao" & u_input &",datavoto) "sql = sql & "values ('" & u_ip & "',1,getdate())"'efetiva a gravação no banco de dadosrs.Open sql, cnend if'Vamos fazer um resumo e a estatistica dos votos por opção e calcular o total de votossql= "select sum(opcao1) as soma_opcao1, "sql= sql & "sum(opcao2) AS soma_opcao2, sum(opcao3) AS soma_opcao3, count(*) AS total_votos "sql= sql & "FROM votos;"rs.Open sql, cn'totaliza os votos por opção e armazena nas variáveis definidastotal1=rs ("soma_opcao1")total2=rs ("soma_opcao2")total3=rs ("soma_opcao3")'obtem o total de votos do recodset geradocontador=rs ("total_votos")end if%><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="53%" id="AutoNumber1"><tr><td bgcolor="#FFFFFF" align="left" colspan="3"><font color="#0033FF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Escolha a imagem:</strong></font></td></tr><tr><td width="48%" bgcolor="#E8E8E8" align="left"><strong><font face="Verdana" size="1" color="#0033FF">   opção         </font></strong></td><td width="9%" bgcolor="#E8E8E8" align="left"><p align="left"><font face="Verdana" size="1" color="#0033FF"><strong> Votos  </strong></font></td><td width="43%" bgcolor="#E8E8E8" align="left"><strong style="font-weight: 400"><font face="Verdana" size="1">   Percentual</font></strong></td></tr><tr><td width="48%" height="166"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0033FF"> <strong> <img src="../../imagens/img_enquete/9e7bfaa248.jpg" width="188" height="154" /></strong></font></td><td width="9%"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0033FF"><%=total1%></font></td><td width="43%"><font face="Verdana" size="2"><strong style="font-weight: 400">  <img src="../../imagens/img_enquete/vermelho.gif" height="14" width="<%= (total1/contador)*100 %>"> <%= formatnumber((total1/contador)*100,1) %>%    </strong></font></td></tr><tr><td width="48%" height="169"> <font face="Verdana, Arial, Helvetica, sans-serif"> <strong><font color="#0033FF"><img src="../../imagens/img_enquete/946a0269c5.jpg" width="188" height="154" /> </font></strong></font></td><td width="9%"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0033FF"><%=total2%></font></td><td width="43%"><font face="Verdana" size="2"><strong style="font-weight: 400">  <img src="../../imagens/img_enquete/azul.gif" height="14" width="<%= (total2/contador)*100 %>"> <%= formatnumber((total2/contador)*100,1) %>%    </strong></font></td></tr><tr><td width="48%"> <font face="Verdana, Arial, Helvetica, sans-serif"> <strong><font color="#0033FF"> <img src="../../imagens/img_enquete/af0f36d869.jpg" width="188" height="154" /> </font></strong></font></td><td width="9%"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0033FF"><%=total3%></font></td><td width="43%"><font face="Verdana" size="2"><strong style="font-weight: 400"> <img src="../../imagens/img_enquete/laranja.gif" height="14" width="<%= (total3/contador)*100 %>"> <%= formatnumber((total3/contador)*100,1) %>%  </strong></font></td></tr></table><br><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Total dos Votos : <%= formatnumber(contador,0,0) %></font><p> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><% if ja_votou <> "No" then %>Você já votou !!! seu voto <b>NÃO</b> foi contado.<% else %></font></p><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Obrigado por participar !!<% end if %> </font></p>

Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Princesa,

 

Tente incluir este código:

<%If total1 = 0 Or contador = 0 Then	percentual = 0Else	percentual = (total1/contador)*100End if%><font face="Verdana" size="2"><strong style="font-weight: 400">  <img src="../../imagens/img_enquete/vermelho.gif" height="14" width="<%= percentual %>"><%= formatnumber(percentual,1) %>%    </strong></font></td>

A idéia seria esta!

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim poderia fazer por session!Ou passar via REQUEST.QUERYSTRING ou msmo como campo hidden em um REQUEST.FORM.Agora você implementou o if q postei e não resolveu continua retornando o erro de Overflow?t+.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo, mas o problema agora está no ip, ele não está pegando o ip da máquina....Em uma rede, só 1 computador, consegue votar...

'pega o endereço IP do usuariou_ip=request.servervariables("remote_addr")

Por qual ServerVariables posso trocar, para resolver este problema?Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.