Jump to content


Photo

Gravar Dados De Varios Checkboxes Em Tabela Relaci


  • Faça o login para participar
1 reply to this topic

#1 nardo

nardo

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 29/09/2005, 14:54

G :) Galera,

Tô com problema: Não consigo gravar os dados de um formulário que tem varios checkboxes em uma tabela relacionada.

Tenho um formulario com tres campos:

nome (caixa de texto)
endereco (caixa de texto
departamentos (varios checkboxes)

Funciona assim: O usuário digite o nome, cho endereco e marca os ckeboxes correspondentes aos departamentos (estes departamentos estão cadastrados na tabela departamentos).

Para explicar melhor coloquei a estrutura das tabelas, logo abaixo:

Tabela: associado
codigo int not null,
nome varchar(80) not null,
endereco varchar(80) not null,
constraint pk_cod_associado primary key(codigo)

Tabela: departamento
cod_depto int not null,
nome varchar(80) not null
constraint pk_cod_depto primary key(cod_depto)

Tabela: associado_depto
associado int not null,
departamento int not null,
constraint pk_associado_departamento primary key(associado,departamento)
constraint fk_associadodep_associado foreign key(associado) references associado(codigo) on update cascade
constraint fk_associadodep_departamento foreign key(departamento) references departamento(cod_depto) on update cascade


Tô com problema na gravação dos dados !

Lógica:
1º: Tenho que gravar o nome e o endereco do associado na tabela associado (Consigo fazer, está funcionando)
2º: Tenho que gravar na tabela associado_depto(que possui a chave primária composta pelo codigo do departamento e o codigo do associado) o codigo e os departamentos escolhidos pelo usuario.

o problema está no 2º passo. Não estou conseguindo gravar na tabela associado_depto o nome e os departamentos escolhidos por cada associado.

<%
nome=Request.form("nome")
session("nome")=nome
Dim con,rs
set con =server.CreateObject("ADODB.Connection")
set rs =server.CreateObject("adodb.recordset")
con.open "provider=Microsoft.jet.oledb.4.0; Data source=" & server.MapPath("./bd/teste.mdb")
sql="select codigo, nome from associado"
rs.open sql,con,3,3
rs.addnew()
rs.fields("nome")=session("nome")
rs.Update
set rs_obtem_cod_associado = server.CreateObject("adodb.recordset")
sql_obtem_cod_associado="Select codigo from associado where nome='" & session("nome") & "'"
rs_obtem_cod_associado.open sql_obtem_cod_associado,con,3,3
%>
<%cod_associado=rs.fields("codigo").value
'exibe o codigo do associado recém gravado.
response.write cod_associado%>

O código acima grava os dados (coloquei só para gravar o nome) do associado na tabela associado. Funciona. Só que depois de gravar os dados do associado na tabela associado tenho que gravar na tabela
associado_depto, codigo do associado(por isso criei: rs_obtem_cod_associado.open sql_obtem_cod_associado,con,3,3
%>
<%cod_associado=rs.fields("codigo").value
'exibe o codigo do associado recém gravado.
response.write cod_associado%>

para poder pegar o codigo do associado recem gravado na tabela associado) e os departamentos que ele escolheu. Então depois que o usuário marcar os departamentos e clicar no botão gravar do formulário os dados ficarão armazenados assim:

Tabela: associado_depto

associado departamento
1 1
1 2
1 3
2 1
2 2
2 3

O meu problema é gravar os dados na tabela associado_depto.

:D Agradeço a ajuda

:ph34r: Rafael

#2 Agente Linhares

Agente Linhares

    fuis...abraços!

  • Ex-Admins
  • 3138 posts
  • Sexo:Não informado
  • Localidade:Biritiba Mirim-SP

Posted 30/09/2005, 16:40

brother, do jeito q vc postou sua duvida complica um pouco pr aentender, ta meio desorganizado..procura usar os bbcodes q ajuda +

mas blz, se entendi, sua duvida é adicionar varios checks no bd. vc usaria arrays.

um ex.:
<%
cod = request("cod")
arrayID = split(Request("campo"),",",-1,1)

For i = 0 to Ubound(arrayID)
  conn.Execute("UPDATE tabela campo1 = 'teste' Where Cod = " & arrayID(i) & "")
Next
%>

no exemplo, vc pega todos os cods da array e faz um update em dodos os dados do bd q contiverem os cods puxados nessa array. é so um ex. aí vc pode vasear, alterando de update p inserção de acordo como vc precisa.

+ sobre array:
http://forum.wmonlin...&highlite=array
> Busca On-line - A Busca que faltava na Internet! - Cadastre-se!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq