Ir ao conteúdo
  • Cadastre-se

Ajuda - inserindo dados no Sql server com 2 tabelas


cyaros

Posts recomendados

Ola pessoal do forum. eu estou com uma duvida e não estou conseguindo fazer a pergunta certa para o google.

bom eu estou tentando inserir dados em 2 tabelas diferentes:

tabela 1: pessoa( codPessoa, nome) codPessoa Pk auto incremento

tabela 2: telefone (codTelefone, tipo, ddd, numero, codPessoa) codTelefone auto incremento e codPessoa FK de pessoa.

bom eu estava querendo inserir os dados dessa forma:

insert into pessoa (nome) values ('Nome da pessoa')

insert into telefone (ddd, numero, tipo, codPessoa) values ('43','33332222','celular',select max(codPessoa) from pessoa)

nesse caso como daria pra inserir esses dados da maneira correta?

obrigado.

Link para o comentário
Compartilhar em outros sites

  • Moderador

BOm basicamente sua inserçao é isso:

insert into pessoa(nome) values('fulano')

insert into telefone(tipo, ddd, numero, codPessoa) values('celular', '43', '33332222', '1')

onde aquele "1" em telefone, é a id referenciada da pessoa cadastrada.

você nao tem que fazer uma consulta para inserir o a id da pessoa na tabela telefone..

se você tiver usando o php você teria que fazer algo parecido com isso:

conexao.php


<?php
$conexao = mysql_connect("localhost", "root", "");
$banco = mysql_select_db("nomedobanco", $conexao);
?>


<?php
//inclui a configuração de conexao com o banco de dados
include 'conexao.php';

//recebe os dados do formulario de cadastro
$nome = $_POST["nome"];
$tipo = $_POST["tipo"];
$ddd = $_POST["ddd"];
$tel = $_POST["tel"];

//valida os campos vazios
if (empty($nome) OR empty($tipo) OR
empty($ddd) OR empty($tel)){

echo "<script>alert('preencha todos os campos'); history.go(-1); </script>";
exit;

}

$cadastraPessoa = "insert into pessoa(nome) values('$nome')";
$executa = mysql_query($cadastraPessoa);

if($excuta){
$idPessoa = mysql_insert_id($conexao);

$cadastraTel = "insert into telefone(tipo, ddd, numero, codPessoa) values('$tipo', '$ddd', '$tel', $idPessoa) ";

$executa2 = mysql_query($cadastraTel);

if($executa2){
echo "<script>alert('Cadastro Realizado com sucesso'); window.location='cadastro.php'; </script>";

}else{
echo "<script>alert('Erro: Cadastro não realizado'); history.go(-1); </script>";
}

}

mysql_close($conexao);

?>

explicando o codigo... basicamente você faz primeiro um isert na tabela de pessoa... e testa.. se executou a instruçao sql, você resgata o id da ultima pessoa cadastrada e armazena em uma variavel.

e então executa a instruçao de insert na tabela telefone. e testa.. se a instruçao for executada, mostrará em um alert que o cadastro foi feito, ou se houve um erro.

bom sugiuro que você NAO copie e cole esse codigo.. pois pode haver erros.. eu nao testei o codigo.. eu fiz de cabeça.. mas é por aih.. estude ele e adapte para seu proposito.

abraço

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!