Ir para conteúdo

Arquivado

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

tuhajo

Inserir várias variável e jogar em uma só

Recommended Posts

Pessoal, preciso de uma ajuda urgente!!!

Tenho um sistema de pesquisa de satisfação, onde ao usuário inseriri suas resposta, tenho que gravar no banco as perguntas que são textos fixos, vou ter que enviar os números das perguntas num campo hidden e enviar as respostas. Segue um pedaço do código de envio dos dados:

<tr>
    <td class="texto3" bgcolor="#ffe4e1" colspan="3"><b>3) Sua última função na Empresa</b></td>
</tr>
<tr>
    <td class="texto1" bgcolor="#ffe4e1"><input id="rad_op_funcao" name="rad_op_funcao" type="radio"> <font color="red">Excelente</font></td>
    <td class="texto1" bgcolor="#ffe4e1"><input id="rad_op_funcao" name="rad_op_funcao" type="radio"> <font color="red">Boa</font></td>
    <td class="texto1" bgcolor="#ffe4e1"><input id="rad_op_funcao" name="rad_op_funcao" type="radio"> <font color="red">Regular</font></td>
   <input type="hidden" name="num_pergunta" value="3">
</tr>
<tr>
    <td class="texto3" bgcolor="#ffe4e1" colspan="3"><b>4) Teve dificuldade de realizar o seu trabalho?</b></td>
</tr>
<tr>
    <td class="texto1" bgcolor="#ffe4e1"><input id="rad_op_dificuldade" name="rad_op_dificuldade" type="radio"> <font color="red">Excelente</font></td>
    <td class="texto1" bgcolor="#ffe4e1"><input id="rad_op_dificuldade" name="rad_op_dificuldade" type="radio"> <font color="red">Boa</font></td>
    <td class="texto1" bgcolor="#ffe4e1"><input id="rad_op_dificuldade" name="rad_op_dificuldade" type="radio"> <font color="red">Regular</font></td>
    <input type="hidden" name="num_pergunta" value="4">
</tr>
<tr>
    <td class="texto3" bgcolor="#ffe4e1" colspan="3"><b>5) Caso a resposta anterior seja positiva, levou ao conhecimento do seu líder?</b></td>
</tr>
<tr>
    <td class="texto1" bgcolor="#ffe4e1"><ul><input id="rad_op_conhecimento" name="rad_op_conhecimento" type="radio"> <font color="red">Sim</font></td>
    <td class="texto1" bgcolor="#ffe4e1" colspan="2"><input id="rad_op_conhecimento" name="rad_op_conhecimento" type="radio"> <font color="red">Não</font></td>
    <input type="hidden" name="num_pergunta" value="5">
</tr>

Minha dúvida é a seguinte: Como faço pra receber várias respostas e inserir no banco já que o banco foi criado da seguinte forma:

INTMATRICULA = Matrícula quem respondeu a pesquisa

NUM_QUESTAO = Número da pergunta

IND_RESP = As respostas (sendo que as respostas podem ser "Sim ou Não", "Bom, Excelente e Regular" e "1,2,3,4,5,6")

 

Eu recebo vários requests, já que o nome dos inputs são diferentes e tenho que receber em uma variável que é a num_resposta para inserir na tabela. Como posso fazer isso???

 

insereResp = "INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP) "&_
             "VALUES ("&matricula&","&num_pergunta&",'"&num_resposta&"')"
Set RsResposta = ConBanco.Execute(insereResp) 

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só fazer o request e inserí-los na cláusula SQL INSERT...

 

ele esta gerando algum erro ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só fazer o request e inserí-los na cláusula SQL INSERT...

 

ele esta gerando algum erro ???

 

 

Mas como vou fazer isso se eu recebo vários nomes de variáveis diferentes e tenho que inserir em 1 só???

Ex:

rad_op_funcao = request("rad_op_funcao")
rad_op_dificuldade = request("rad_op_dificuldade")
rad_op_conhecimento = request("rad_op_conhecimento")

insereResp = "INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP) "&_             
"VALUES ("&matricula&","&num_pergunta&",'"&num_resposta&"')"
Set RsResposta = ConBanco.Execute(insereResp) 

Eu teria que inserir o resultado das variáveis, onde está o "num_resposta" no insert.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vocÊ pode concatenar os valores para uma variavel somente

Compartilhar este post


Link para o post
Compartilhar em outros sites

vocÊ pode concatenar os valores para uma variavel somente

 

teria que fazer um for? pq tenho q inserir cada resposta em um linha, se eu concatenar vai sair tudo no mesmo campo, ou to errada?

não entendi como fazer!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um loop com o For...Next e você pode inserir os resultados em um array também, para facilitar

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um loop com o For...Next e você pode inserir os resultados em um array também, para facilitar

 

 

você tem como me mandar um exemplo, por favor, pois tentei de várias formas aqui e não funcionou???

Grata.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o total de perguntas ? supondo que seja 4

i= 0

total=4

for i to total

sql = sql+resposta nova

next

 

rs = conn.execute(sql)

 

alguma coisa nesse sentido, no w3schools tem uns exemplos com for next e tals.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha um exemplo

 

if qtd_produtos = "" then
Response.write("erro..."
response.redirect("outra_pagina.asp")
else
qtd_produtos = split(Request.Form("qtd_produtos"),",")
if qtd_produtos = ""
produtos= Split(Request.Form("produtos"), ",")

For i = 1 To Request.Form("produtos").Count

Response.write request.form("produtos")(i)&"<BR>" & request.form("qtd_produtos")(i)&"<BR>"
SQL = "INSERT INTO lista (lista_prodID,lista_quant) Values ('"&request.form("produtos")(i)&"','"&request.form("qtd_produtos")(i)&"')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o total de perguntas ? supondo que seja 4

i= 0

total=4

for i to total

sql = sql+resposta nova

next

 

rs = conn.execute(sql)

 

alguma coisa nesse sentido, no w3schools tem uns exemplos com for next e tals.

 

 

Tem 18 perguntas e pra cada pergunta 1 resposta.

Pra cada pergunta e reposta, tenho que inserir 1 linha.

Sendo que recebo as respostas com nomes dos requests diferentes.

Ex:

rad_op_funcao = request("rad_op_funcao")
rad_op_dificuldade = request("rad_op_dificuldade")
rad_op_conhecimento = request("rad_op_conhecimento")

e o insert é assim:

 

insereResp = "INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP) VALUES ("&matricula&","&num_pergunta&",'"&num_resposta&"')"
Set RsResposta = ConBanco.Execute(insereResp) 

Como vou inserir o rad_op_funcao, rad_op_dificuldade e o rad_op_conhecimento no "num_resposta" que é a variável que vai receber esses valores do request pra inserir no banco???

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta gerando algum erro atualmente ?!?!?1

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta gerando algum erro atualmente ?!?!?1

 

 

Não... não deu erro pq nem sei por onde começar!!!

Não sei como vou atribuir várias variáveis em 1 só, como expliquei acima. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem 18 perguntas e pra cada pergunta 1 resposta.

Pra cada pergunta e reposta, tenho que inserir 1 linha.

Sendo que recebo as respostas com nomes dos requests diferentes.

Como vou inserir o rad_op_funcao, rad_op_dificuldade e o rad_op_conhecimento no "num_resposta" que é a variável que vai receber esses valores do request pra inserir no banco???

 

essa resposta não pode junatr os dados (concatenar)

 

acho a melhor solução você clocar a mesma lógica para um Quiz, onde existem diferentes perguntas e resposta,pode te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem 18 perguntas e pra cada pergunta 1 resposta.

Pra cada pergunta e reposta, tenho que inserir 1 linha.

Sendo que recebo as respostas com nomes dos requests diferentes.

Como vou inserir o rad_op_funcao, rad_op_dificuldade e o rad_op_conhecimento no "num_resposta" que é a variável que vai receber esses valores do request pra inserir no banco???

 

essa resposta não pode junatr os dados (concatenar)

 

acho a melhor solução você clocar a mesma lógica para um Quiz, onde existem diferentes perguntas e resposta,pode te ajudar

 

Existe algum exemplo de quiz??? Porque o problema maior é que tenho que adaptar o código ao banco de dados que o AD modelou. Não posso mudar o banco!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, a minha sugestão seria refazer o bd (ou pelo menos essa parte dele), como disse que não tem como, vamos ver se isso ajuda:

supondo que rad_op_funcao seja a pergunta e rad_op_dificuldade e rad_op_conhecimento sejam partes da resposta:

num_pergunta = num_pergunta &", "& + rad_op_funcao

num_resposta = numresposta &", "& + rad_op_dificuldade &", "& + rad_op_conhecimento

isso dentro do loop.

Finalizado o loop, o insert fica como você postou, mas já com as informações que precisa.

Não tenho certeza se funciona com &", "& ou se é com +, não estou perto do micro de desenvolvimento para testar, mas acho que é isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, a minha sugestão seria refazer o bd (ou pelo menos essa parte dele), como disse que não tem como, vamos ver se isso ajuda:

supondo que rad_op_funcao seja a pergunta e rad_op_dificuldade e rad_op_conhecimento sejam partes da resposta:

num_pergunta = num_pergunta &", "& + rad_op_funcao

num_resposta = numresposta &", "& + rad_op_dificuldade &", "& + rad_op_conhecimento

isso dentro do loop.

Finalizado o loop, o insert fica como você postou, mas já com as informações que precisa.

Não tenho certeza se funciona com &", "& ou se é com +, não estou perto do micro de desenvolvimento para testar, mas acho que é isso.

 

Fiz da seguinte maneira:

num_pergunta            = split(request.form("num_pergunta"),",")
rad_pedido              = request("rad_pedido")
rad_op_funcao           = request("rad_op_funcao")
rad_op_dificuldade      = request("rad_op_dificuldade")
rad_op_conhecimento     = request("rad_op_conhecimento")

for x = 0 to ubound(num_pergunta)

    
    num_resposta = rad_pedido&","&rad_op_funcao&","&rad_op_dificuldade&","&rad_op_conhecimento
    

    insereResp = "INSERT INTO PESQUISA_DESLIGAMENTO INTMATRICULA,NUM_QUESTAO,IND_RESP,DSC_OBS_RESP,DAT_INCL,INTMATRICULA_INCL) "&_
                 "VALUES ("&matricula&","&num_pergunta(x)&",'"&num_resposta&"','"&dsc_resposta&"',SYSDATE,"&matricula&")"
    Set RsResposta = ConBanco.Execute(insereResp) 
    
next

Aí ele tá inserindo todas as respostas em todas as linhas. Segue o que ele tá retornando:

INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP,DAT_INCL) VALUES (65508,1,'P,E,B,N',SYSDATE)
INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP,DAT_INCL) VALUES (65508,2,'P,E,B,N',SYSDATE)
INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP,DAT_INCL) VALUES (65508,3,'P,E,B,N',SYSDATE)
INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP,DAT_INCL) VALUES (65508,4,'P,E,B,N',SYSDATE)

Quando o correto seria retornar:

INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP,DAT_INCL) VALUES (65508,1,'P',SYSDATE)
INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP,DAT_INCL) VALUES (65508,2,'E',SYSDATE)
INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP,DAT_INCL) VALUES (65508,3,'B',SYSDATE)
INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP,DAT_INCL) VALUES (65508,4,'N',SYSDATE)

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele sai assim:

 

INSERT INTO PESQUISA_DESLIGAMENTO (INTMATRICULA,NUM_QUESTAO,IND_RESP,DAT_INCL) VALUES (65508,1,'P,E,B,N',SYSDATE)

 

porque você esta usando ele concatenando

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu primeiro post, você colocou isto:

IND_RESP = As respostas (sendo que as respostas podem ser "Sim ou Não", "Bom, Excelente e Regular" e "1,2,3,4,5,6")

 

foi a solução que chegamos.

 

Agora precisa de outro modo, a ideia é quase a mesma, com uma diferença;

você coloca um laço for ou while (prefiro o while) que enquanto houver resposta para a pergunta x, ele vai inserindo, quando acabar ele vai pra proxima pergunta.

A base você já tem, basta modificar um pouquinho :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu primeiro post, você colocou isto:

IND_RESP = As respostas (sendo que as respostas podem ser "Sim ou Não", "Bom, Excelente e Regular" e "1,2,3,4,5,6")

 

foi a solução que chegamos.

 

Agora precisa de outro modo, a ideia é quase a mesma, com uma diferença;

você coloca um laço for ou while (prefiro o while) que enquanto houver resposta para a pergunta x, ele vai inserindo, quando acabar ele vai pra proxima pergunta.

A base você já tem, basta modificar um pouquinho :)

 

A idéia continua a mesma, só acrescentei mais um status que é o "P", o "E" é o Excelente, o "B" é o Bom e o "N" é o Não.

Sendo que cada pergunta só pode ter 1 resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é basicamente igual ao post #9, que coloquei acima...

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.