Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido)Como Inserir dados em duas tabelas relacionadas


alexclima

Pergunta

Olá pessoal, sou novato no forum e tambem em mysql.

Tenho a seguinte duvida: Como faço para inserir informações de um formulario em duas tabelas relacionadas?

Minhas tabelas de estudo são estas:

-- -----------------------------------------------------

-- Table `estudo`.`Pessoa`

-- -----------------------------------------------------

`idPessoa` INT NOT NULL AUTO_INCREMENT ,

`nome_pessoa` VARCHAR(45) NULL ,

`senha_pessoa` VARCHAR(45) NULL ,

`cpf_pessoa` VARCHAR(45) NULL ,

`rg_pessoa` VARCHAR(45) NULL ,

PRIMARY KEY (`idPessoa`) )

-- -----------------------------------------------------

-- Table `estudo`.`Certificados`

-- -----------------------------------------------------

`idCertificados` INT NOT NULL AUTO_INCREMENT ,

`nome_certificado` VARCHAR(45) NULL ,

`lugar_certificado` VARCHAR(45) NULL ,

`Pessoa_idPessoa` INT NOT NULL ,

PRIMARY KEY (`idCertificados`) ,

INDEX `fk_Certificados_Pessoa` (`Pessoa_idPessoa` ASC) ,

CONSTRAINT `fk_Certificados_Pessoa`

FOREIGN KEY (`Pessoa_idPessoa` )

REFERENCES `estudo`.`Pessoa` (`idPessoa` )

ON DELETE NO ACTION

ON UPDATE NO ACTION)

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Olá pessoal, sou novato no forum e tambem em mysql.

Tenho a seguinte duvida: Como faço para inserir informações de um formulario em duas tabelas relacionadas?

Oi, 'alexclima'

São dois inserts distintos. Primeiro insira os dados na tabela pai (Pessoa), depois insira os dados na tabela filha (Certificados).

Link para o comentário
Compartilhar em outros sites

  • 0
Olá pessoal, sou novato no forum e tambem em mysql.

Tenho a seguinte duvida: Como faço para inserir informações de um formulario em duas tabelas relacionadas?

Oi, 'alexclima'

São dois inserts distintos. Primeiro insira os dados na tabela pai (Pessoa), depois insira os dados na tabela filha (Certificados).

Olá Denys, bom são dois inserts destintos mas como fazer para que o segundo insert na tabela filho, insira os dados usando o mesmo id da tabela pai?

coloquei aqui meu codigo o segundo insert não adiciona os dados na outra tabela:

<?php

$operacao = $_POST["operacao"];

include "conecta_mysql.inc";

if ($operacao==incluir")

{

$nome = $_POST["nome];

$senha = $_POST["senha"];

$cpf = $_POST["cpf"];

$rg = $_POST["rg"];

$dia = $_POST["dia"];

$mes = $_POST["mes"];

$ano = $_POST["ano"];

$nascimento = $ano . "-". $mes . "-" . $dia;

if($nascimento==$ano ."-02-31"){

echo "Data não existe!";

echo "<p align=\"center\"><a href=\"pagina_inicial.php\">Voltar</a></p>";

exit;

}

$certificado = $_POST["certificado"];

$local = $_POST["local"];

$sql = "INSERT INTO pessoa (nome_pessoa, senha_pessoa, cpf_pessoa, rg_pessoa, Dt_Nascimento_pessoa) VALUES";

$sql .= "('$nome','$senha',$cpf,$rg,'$nascimento')";

$sql .= "INSERT INTO certificados (nome_certificado, lugar_certificado) VALUES";

$sql .= "(LAST_INSERT_ID(), '$certificado','$local')";

$resultado = mysql_query ($sql);

echo "Cliente incluído com sucesso!";

echo "<p align=\"center\"><a href=\"pagina_inicial.php\">Voltar</a></p>";

}

mysql_close($conexao);

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'alexclima'

Este é um exemplo em SQL de como funciona este tipo de insert.

SET AUTOCOMMIT=0;
START TRANSACTION;
INSERT INTO pessoa(nome_pessoa, senha_pessoa, cpf_pessoa, rg_pessoa)
VALUES('teste1', 'senha', '123', '456');
INSERT INTO Certificados(nome_certificado, lugar_certificado, idPessoa)
values('cert1', 'rj', (select LAST_INSERT_ID()));
COMMIT;
SET AUTOCOMMIT=1;

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'alexclima'

Este é um exemplo em SQL de como funciona este tipo de insert.

SET AUTOCOMMIT=0;
START TRANSACTION;
INSERT INTO pessoa(nome_pessoa, senha_pessoa, cpf_pessoa, rg_pessoa)
VALUES('teste1', 'senha', '123', '456');
INSERT INTO Certificados(nome_certificado, lugar_certificado, idPessoa)
values('cert1', 'rj', (select LAST_INSERT_ID()));
COMMIT;
SET AUTOCOMMIT=1;

Obrigado Denis vou tentar descobrir como colocar isso em PHP se conseguir coloco o codigo aqui para ajudar aos proximos.

Link para o comentário
Compartilhar em outros sites

  • 0
Obrigado Denis vou tentar descobrir como colocar isso em PHP se conseguir coloco o codigo aqui para ajudar aos proximos.

Oi, Alex!

Se você tiver dificuldade crie uma storage procedure, passe os valores em values como parametros e execute a operação SQL normalmente.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...