Ir para conteúdo

Arquivado

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

Agente Linhares

enquete/pesquisa

Recommended Posts

será que seria possível?

tipo uma enquete com checkbox ao invés de radio, mas podendo marcar mais de uma opção pra ser adicionada o bd..

 

Então, na verdade o que ta acontecendo é que esse code é feito p/ capturar o id da opção escolhida na pesquisa e adicioná-lo ao bd.

Mas acontece que o code pega apenas um dos ids escolhidos.

Por ex. : tem lá a opção1 a opção2 e a opção3 se eu selecionar só uma dessas opções vai dar certo, pq o code pega o id escolhido e adiciona no bd, mas já se eu escolher 2 ou mais dá esse erro:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][Driver ODBC para Microsoft Access] Syntax error (comma) in query expression 'id=1, 3'. /BR/pesquisa.asp, line 29
rs.open sql,bre na linha do erro:

 

o code completo que faz todo o serviço de requisitar o dado e adiciona-lo ao bd

<!--#include file="conexao.asp"--><body bgcolor="#ffffff"><p align="center">Voto efetuado com sucesso!</p></body><%' aqui inicia o code que captura o dado pelo request.form e adiciona o mesmo ao bdx = 0set br=server.createobject("adodb.connection")br.open Conexaosub close()rs.closeset rs=nothingbr.closeset br=nothingend subacao = request("acao")select case acao    case "votar"PerguntaID_br =  trim(request.form("PerguntaID"))PerguntaID_br_2 = split(PerguntaID_br,",")for i=0 to ubound(PerguntaID_br_2)Resposta_br = request.form("enquete"& trim(PerguntaID_br_2(i)) &"")Resposta_br = trim(Resposta_br)set rs = server.createobject("adodb.recordset") if Resposta_br="" thenx = x + 1 elsesql="select total from Respostas where id="&trim(Resposta_br)rs.open sql,brtotal=rs("total")total=total+1sql_2="update Respostas set total="& total &" where id="&Resposta_brbr.execute(sql_2)rs.closeset rs = nothing end if	next	 if x-1 = ubound(PerguntaID_br_2) thenresponse.write "<b><center><font size='2' face='Verdana'><b>É necessário escolher uma opção!</center></b></font><br>" end ifbr.closeset br = nothingend select%>

e a estrutura de meu bd ta assim:

- na tabela: Perguntasid - pergunta- na tabela: Respostasid - PerguntaID - Resposta - total

- Sei que esse erro é pq o code tem que receber apenas um desses ids que são as opções p/ que seja adiconado +1 ao bd, na opção escolhida.

Mas aí que pega...

J´apesquisei muito sobre checkbox e aind anão encontrei um asolução pra isto.

 

como posso resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não da para você consultar assim no banco de dados.

 

Se você colocar um Response.Write SQL verá como esta indo. O que você precisa na verdade, é separar todos os ID's colocar em arrays e ir inserindo um por um. Vou mostrar como quebrar esse ids e colocar em arrays:

 

 

ASP [/tr][tr]VariosIDs = Request("VariosIDs")

 

IDsQuebrados = Split(VariosIDs, ", ")

 

For i = LBound(IDsQuebrados) To UBound(IDsQuebrados)

Response.Write i

 

Aqui vai a instrução SQL

Next

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só pra ajudar ela melhor...vo altera ai seu codigo Penna :P

 

PHP [/tr][tr]

VariosIDs = Request("VariosIDs")

 

IDsQuebrados = Split(VariosIDs, ", ")

 

For i = LBound(IDsQuebrados) To UBound(IDsQuebrados)

Response.Write i

 

SQL = "INSERT INTO TABELA(id) VALUES(" & IDsQuebrados(i) & ")"

conexao.execute(SQL)

 

Next

[/tr]

 

Agora da pra tu entende melhorzim o porque do FOR. ;)

 

(Usei CODE PHP...o ASP ta bichado...)

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.