regina 0 Denunciar post Postado Novembro 8, 2006 Bom dia.Estou criando um cadastro de usuários e cheguei na seguinte situação:Tenho um usuário que está fazendo seu cadastro, num determinado momento ele vai cadastrar 2 filhos.Tenho as seguintes tabelas:tb_usuarios CREATE TABLE `tb_usuarios` (`usuario_id` int(255) NOT NULL auto_increment,`usu_cpf` varchar(14) NOT NULL default '',`usu_nome` varchar(60) NOT NULL default '',`usu_dt_nasc` date NOT NULL default '0000-00-00',`usu_loc_nasc` varchar(60) NOT NULL default '',`usu_nome_pai` varchar(60) NOT NULL default '',`usu_nome_mae` varchar(60) NOT NULL default '',`usu_sexo` enum('feminino','masculino') NOT NULL default 'feminino',...`usu_criacao` datetime NOT NULL default '0000-00-00 00:00:00',`usu_criacao_oper` int(5) NOT NULL default '0',`usu_edicao` datetime NOT NULL default '0000-00-00 00:00:00',`usu_edicao_oper` int(5) NOT NULL default '0',PRIMARY KEY (`usuario_id`,`usu_cpf`)) TYPE=InnoDB COMMENT='Usuários cadastrados' AUTO_INCREMENT=7 ;tb_dependentesCREATE TABLE `tb_usu_dependentes` (`dependente_id` int(255) unsigned zerofill NOT NULL auto_increment,`usuario_id` int(255) NOT NULL default '0',`dependente_nome` varchar(50) NOT NULL default '',`dependente_dt_nasc` date NOT NULL default '0000-00-00',`dependente_criacao` datetime NOT NULL default '0000-00-00 00:00:00',`dependente_criacao_oper` int(5) NOT NULL default '0',`dependente_edicao` datetime NOT NULL default '0000-00-00 00:00:00',`dependente_edicao_oper` int(5) NOT NULL default '0',PRIMARY KEY (`dependente_id`,`usuario_id`),KEY `usuario_id` (`usuario_id`),CONSTRAINT `usuario_id` FOREIGN KEY (`usuario_id`) REFERENCES `tb_usuarios` (`usuario_id`)) TYPE=InnoDB PACK_KEYS=0 COMMENT='Dependentes dos usuarios' AUTO_INCREMENT=1 ;Como eu faço para gravar o usuário que recebe um id autoincrement e na sequencia seus dependentes usando o mesmo id do usuário?Obrigada Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Novembro 8, 2006 Você precisa usar "controle de trasações". Pesquisa no Google, por exemplo que você vai achar muita coisa lá. E você pode utilizar a função mysql_insert_id() para pegar o id gerado pelo auto_increment. Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Novembro 8, 2006 Obrigada marcio.sfsMe surgiu uma nova questão:como os inputs são gerados via javascritp de acordo com o número de filhos de cada usuário, como eu devo fazer para o php saber quantas vezes tem que inserir estes registros? Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Novembro 8, 2006 Isto pode ser feito de diversas forma. Vou te mostrar uma que fiz recentemente, para o administrador de um site de Games, em um sistema de banners.Esta tabela server para relacionar o banner (idbanner) às diversas telas (idtela). Neste sistema, o administrador escolhe um banner, e diversas telas. O sql fica assim: $sql_telas = "INSERT INTO gs_bannerstelas(idbanner, idtela) VALUES ";$array_id_telas = Array();foreach($_POST['idtela'] as $k){ array_push($array_id_telas, "($id, $k)"); // inclui o idtela no array array_id_telas}$sql_telas .= implode(',', $array_id_telas); // depois junto cada idtela, separado por uma vírgula$sql_telas .= ';'; // encerro o sql com ';' Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Novembro 8, 2006 Vê se eu entendi: você criou uma terceira tabela? Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Novembro 8, 2006 Naum é nada disse, eu só te mostrei um exemplo de como você faz para montar o sql de inserção de dados, sem saber quantos campos tem no formulário. Compartilhar este post Link para o post Compartilhar em outros sites