Ir para conteúdo

POWERED BY:

Arquivado

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

Marinho

Erro na enquete

Recommended Posts

ASP
<%
'Seleciona o total de votos
Set rstotal = server.CreateObject("adodb.recordset")
rstotal.activeconnection = cnnDB
rstotal.cursortype = 3
rstotal.open "Select count(*) As total from enquete_voto where id_perg="&id_perg
 
'Seleciona a quantidade de respostas
Set rsres = server.CreateObject("adodb.recordset")
rsres.activeconnection = cnnDB
rsres.cursortype = 3
rsres.open "Select * from enquete_resposta where id_perg="&id_perg
%>
 
 
<table width="100" border="1">
  <tr>
    <td><%=perg%></td>
  </tr>
  <% while not rsres.eof %>
  <tr>
    <td>
        <% Set rsvoto = server.CreateObject("adodb.recordset")
  rsvoto.activeconnection = cnnDB
  rsvoto.Open "select count(*) As total from enquete_voto where id_resp="&rsres("id_resp")
 
  soma=rstotal("total")
  if soma=0 then
  soma=1
  end if
 
  cont = rsvoto("total")
   
  'grafico = ((int(cont) * 100) / int(soma))
  total=int((cont*100)/int(soma))
  response.Write(rsres("resposta")&"<br>")
  response.Write("<img src=gifs/grafico/grafico.gif width="&total&" height=15><br>")
  response.Write(rsvoto("total")&" Voto(s) "& total & cont)
  %>
    </td>
  </tr>
  <%
  rsres.movenext
  wend
  %>
  <tr>
    <td>
        <%  response.Write("Total de Votos: "& rstotal("total") ) %>
    </td>
  </tr>
</table>

 

Esta ocorrendo o sequinte erro:

 

 

Tipo de erro:

Microsoft VBScript runtime (0x800A000D)

Type mismatch

/luiscarlos/responder.asp, line 67

 

 

Já coloque int() para transformar e inteiro e nada.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei que linha está dando o erro....mas tira esses "((int(cont) * 100) / int(soma))" por que tudo que é divisão é real (decimal). Depois que achar o resultado da divisão daí sim pegue a parte inteira. Tipo:

 

ASP
res = (cont * 100) / soma
res = int(res)

 

Espero que seja isso a sua dúvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro esta nas linhas 27 e 34, quando pego o a soma dos campo com count(*) total.O que posso fazer, Obs acho que isso com bd Access funciona perfeitamente, estou utilizando mysql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No lugar do "*" na sua SQL com o COUNT utilize o nome do campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troquei, testei mais o erro continua nas linhas 27 e 34fiz assim:rsvoto.Open "select count(id_voto) As total from enquete_voto where id_resp="&rsres("id_resp")

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente

 

ASP
  • total = CINT(cont) * 100 / CINT(soma)
  •  

    INT serve para pegar a parte inteira de um numero mas se o valor for uma string é necessario converter para numero

     

    verifica se o erro continua o mesmo e no mesmo lugar ainda

    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.