Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal to com um script de enquete bem legal, mas é todo em bd access. Como meu bd é mysql estou precisando de uma mão. Seguem os codes:
arquivo: conectar.asp
<%Set Conexao = CreateObject("ADODB.CONNECTION")ConStr = "Driver={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=bd_site; UID=meulogin; PWD=meupassword;" Conexao.CursorLocation = 3ConexaoAberta = FALSESub AbreConexao() if not ConexaoAberta then Conexao.Open ConStr ConexaoAberta = True end ifend subSub FechaConexao() if ConexaoAberta then Conexao.close ConexaoAberta = False end ifend sub %>
arquivo: principal.asp
<!--#include file="conectar.asp"--><%'Abre o Recordset para chamada 1Set RS = Server.CreateObject( "ADODB.Recordset" )RS.ActiveConnection = dbRS.open "SELECT * FROM enquete"%><% 'Criando variáveisDim meubd, rsQuestoes, rsComentarios'Setando conexaoset meubd=server.createobject("adodb.connection")set rsQuestoes=server.createobject("adodb.RecordSet")set rsComentarios=server.createobject("adodb.RecordSet")'Abrindo conexaomeubd.Open localbd'Faremos aqui a seleção da questão'Lembrando que será feito um Relacionamento de tabelas'Para podermos mostrar questão e opções para votorsQuestoes.Open "SELECT LIMIT 1 * from questoes, votos where questoes.cod_questao=votos.cod_questao and votos.cod_questao=questoes.cod_questao", meubd'Aqui será feita uma SELECT para mostrar a quantidade de comentáriosrsComentarios.Open "SELECT count(cod_comentario) as TotalCom from comentarios where cod_questao="&rsQuestoes.fields("cod_questao")&" ", meubd%><html><title>Sistema de Enquete</title><%'Aqui será feito o Javascript que abrirá os resultados em Pop-up%><script language="JavaScript" type="text/JavaScript"><!--function abrirjanela(theURL,winName,features) { //v2.0 window.open(theURL,winName,features);}//--></script><%'Verificar se o voto foi feito'Se foi, gravará uma session com a opção marcadaif request.form("voto")<>"" then session("voto")=request.form("voto") response.write "<script>javascript:abrirjanela('votar.asp','Resultado','width=200,height=280')</script>"end if%><body><table width="200" border="0" cellspacing="2" cellpadding="1"> <tr> <td bgcolor="#FF9900"><font size="2" face="Arial, Helvetica, sans-serif"><b> <% 'Aqui estamos mostrando a questão da enquete response.write rsQuestoes.fields("questao")%> </b></font></td> </tr> <tr> <form name="form1" method="post" action"principal.asp"><td bgcolor="f4f4f4"> <table width="200" border="0" cellspacing="1" cellpadding="0"> <tr> <td><table width="200" border="0" cellpadding="0" cellspacing="0"> <% 'Criaremos uma variavel que fará com que a primeira opção fique marcada ao iniciar dim check check="checked" 'Iremos aqui utilizar o WHILE para repedir as Opções para voto while NOT rsQuestoes.EOF %> <tr> <td width="23"> <input name="voto" type="radio" value=" <% 'Aqui setaremos o valor que utilizaremos para somar o voto 'de uma determinada opção response.write rsQuestoes.fields("Cod_voto") %> " <%=check%>> </td> <td width="177"><font size="2" face="Arial, Helvetica, sans-serif"> <% 'Mostrar o Campo da tabela que mostrará as Opções response.write rsQuestoes.fields("Opcao") %> </font></td> </tr> <% check="" rsQuestoes.movenext wend %> </table></td> </tr> <tr> <td> <div align="center"> <br> <input type="submit" name="Submit" value="votar"> <br> <br> </div></td> </tr> <tr> <td><div align="right"><font size="2" face="Arial, Helvetica, sans-serif"><a href="#" onClick="abrirjanela('resultado.asp','Resultado','width=200,height=280')">Ver resultados</a><br> </font></div></td> </tr> </table></td> </form> </tr> <tr> </tr></table></body></html>
arquivo: votar.asp
<% Option Explicit'Iremos verificar um Cookie para saber se o usuário já votou'Se ele já tiver votado, irá para a página de resultados com o QueryString = Inválidoif request.cookies("enquete")("voto")<>"" then response.redirect "resultado.asp?status=Invalido" end if'Criando variáveisDim localbd, meubd, votos, opcaoEscolhida, quant'Gravando a opção escolhida em uma variávelopcaoEscolhida = session("voto")'Indicando local do Banco de dadoslocalbd="driver={microsoft access driver (.mdb)};dbq=" & server.mappath("bd/bd.mdb")'Setando conexaoset meubd=server.createobject("adodb.connection")set votos=server.createobject("adodb.RecordSet")'Abrindo conexaomeubd.Open localbd'Selecionando o registro da Opção escolhidavotos.Open "SELECT from Votos where cod_voto="&opcaoEscolhida&"", meubd'Guardar quantidade de votos em uma variável antes deste votoquant = votos.fields("votos")'Iremos executar agora o SQL que abrirá que atualizará os votosmeubd.EXECUTE "UPDATE votos SET votos = " & quant & "+1 where cod_voto="&opcaoEscolhida&""'Para evitar que o usuário vote novamente, iremos criar um cookieresponse.Cookies("Enquete")("Voto") = date'Setando valor à sessionsession("voto")=""'O voto já foi computado, agora irá para a página que exibirá o resultadoresponse.redirect "resultado.asp?questao= "& votos.fields("cod_questao") &""%>
arquivo: resultado.asp
<% Option Explicit'Criando variáveisDim meubd, votosTotal, votos'Setando conexaoset meubd=server.createobject("adodb.connection")'Faremos dois recordset, uma para mostrar a quantidade de todos os votos'e outro para mostrar os votos de cada opçãoset votosTotal=server.createobject("adodb.RecordSet")set votos=server.createobject("adodb.RecordSet")meubd.Open localbd'Agora a SELECT dos votos individuaisvotos.open "SELECT LIMIT 1 * from Votos, questoes where votos.cod_questao = questoes.cod_questao and questoes.cod_questao=votos.cod_questao ", meubd'Fazendo a SELECT do total de votosvotosTotal.open "SELECT sum(votos) as totalvotos from votos where cod_questao ="&votos.fields("cod_questao")&"", meubd%><html><title>Sistema de Enquete</title><body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><table width="200" height="250" border="0" cellpadding="1" cellspacing="2"> <tr> <td height="25"><strong><font size="2" face="Arial, Helvetica, sans-serif"> <% 'Mostrar aqui a questão response.write votos.fields("questao") %> </font></strong></td> </tr> <tr> <td valign="top"><div align="center"> <font color="#FF9900" size="2"><strong><font face="Arial, Helvetica, sans-serif">Resultado - <%=votostotal.fields("totalvotos")%> votos</font></strong></font><font face="Arial, Helvetica, sans-serif"> <font size="2"> <% dim porcentagem 'Fazer a repetição das opções com seus votos em porcentagem While NOT votos.EOF %> </font></font><font size="2"> </font> <table width="100%" border="0" cellspacing="1" cellpadding="0"> <tr> <td><font size="2" face="Arial, Helvetica, sans-serif"> <% 'Mostrar opção response.write votos.fields("opcao") %> </font></td> </tr> <% 'Aqui será feita a conta dos votos em porcentagem porcentagem = cdbl(votos.fields("votos"))*100 porcentagem = porcentagem / cdbl(votosTotal.fields("totalvotos")) %> <tr> <td height="18" valign="middle"><font size="2" face="Arial, Helvetica, sans-serif"><img src="img.gif" width="<%=porcentagem%>%" height="10"> <font color="#666666"> <% 'Mostrar valor em porcentagem com apenas uma casa decimal response.write formatnumber(porcentagem,1) %> % </font></font></td> </tr> </table> <font face="Arial, Helvetica, sans-serif"> <% votos.movenext wend %> </font><font size="2" face="Arial, Helvetica, sans-serif"> <% 'Se o voto do usuario já havia sido feito mostrar uma mensagem if request.querystring("status")="Invalido" then response.write "Você já votou hoje." end if %> </font><font size="2"> </font> </div></td> </tr></table></body></html>Carregando comentários...