Jump to content
Sign in to follow this  
kukamax

INSERT em duas tabelas com chave estrangeira

Recommended Posts

Beleza pessoal, gostaria de uma ajuda de você, como faço pra um só formulário, cadastra em duas tabelas relacionada, mas um campo da segunda tabela é chave estrangeira, que na primeira que é auto-incremet, como faço pra pegar este campo que será gerada no momento que estiver executando a quer. desde obrigado.

 

Share this post


Link to post
Share on other sites

Acredito que você quer pegar o ID gerado da tabela que possui a chave auto_increment.

 

Você deve utilizar o

mysqli_insert_id()

Segue: http://php.net/manual/pt_BR/mysqli.insert-id.php

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By tupinikin
      Bom dia senhores.
      Estou dando manutenção em uma banco de dados que não estava normalizado, sem chaves estrangeiras etc etc
      depois de cria-las, quando vou importar os dados, acontecem vários erros, pq tem chaves primárias que foram excluidas
      e no caso da estrangeira, fica ausente.
      No phpmyadmin tem a opção de não checar as chaves, mas não gostaria de manter dados que não existem.
       
      Qual a forma mais fácil de eu encontrar os registros que estão referenciados á um chave primária que não existe?
       
      grato
    • By Marcosvn
      Bom dia turma !
       
      já procurei na internet e até encontrei muito artigo relacionado, mas ainda estou com muito dificuldade para exibir os dados da tabela principal (usuario) com a tabela (empresas - estrangeira)
       
      o usuário do site, ao se cadastrar, vai inserir seus dados e a empresa em que trabalha. Em seguida, a página referente aquela empresa (ex: atento.php) deve exibir todos os usuários daquela empresa entenderam ?
       
       -  o nome do Banco de Dados "TrocaEmpresas"
      a tabela é essa: 

       
      supondo que na tabela empresas esteja assim: 
      id: 1
      Nome: Atento
       
      Considerando que preciso exibir apenas o "nome ", "sobrenome" , "email" e "Empresa", como faço para exibir todos os usuários cadastrados nessa empresa na página atento.php ?
       
      encontrei muita coisa sobre INNER JOIN, mas não consigo de jeito nenhum fazer funcionar, eu não estou entendendo muito bem o funcionamento, agradeço a disposição dos que me ajudarem a esclarecer essa dificuldade.
       
      um abraço, vlw
       
       
    • By yasmincris
      Bom dia a todos, então estou com uma duvida em banco de dados MySQL, como faria um insert nessas duas tabelas?
      CREATE TABLE IF NOT EXISTS `cria`.`usuario` ( `iduser` INT(10) NOT NULL AUTO_INCREMENT, `nomeuser` VARCHAR(50) NOT NULL, `telefoneuser` BIGINT(20) NOT NULL, `celularuser` BIGINT(20) NOT NULL, `emailuser` VARCHAR(45) NOT NULL, `senhauser` VARCHAR(50) NOT NULL, `img_user` VARCHAR(300) NOT NULL, PRIMARY KEY (`iduser`), UNIQUE INDEX `emailuser` (`emailuser` ASC), INDEX `fk_usuario_animal1_idx` (`iduser` ASC), CONSTRAINT `fk_usuario_animal1` FOREIGN KEY (`iduser`) REFERENCES `cria`.`animal` (`idanimal`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB AUTO_INCREMENT = 2 DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `cria`.`animal` ( `idanimal` INT(10) NOT NULL AUTO_INCREMENT, `nomeanimal` VARCHAR(30) NOT NULL, `raca` VARCHAR(20) NOT NULL, `vacinas` VARCHAR(20) NOT NULL, `animal_img` VARCHAR(300) NOT NULL, PRIMARY KEY (`idanimal`)) ENGINE = InnoDB AUTO_INCREMENT = 2 DEFAULT CHARACTER SET = latin1; Então eu sei que tenho que fazer select join, mas não sei se como colocar o 'value' nisso:
      insert into usuario ( nomeuser, telefoneuser, celularuser, emailuser, senhauser, img_user ) ( SELECT nomeuser, telefoneuser, celularuser, emailuser, senhauser, img_user FROM usuario JOIN animal ON usuario.iduser = animal.idanimal ) ; aonde eu colocaria os valores? Lembrando que depois colocarei em php os comandos(mesmo que não faça diferença rs).
    • By Cleudiney T Brandão
      Pessoal saudações, preciso da ajuda de vocês tenho uma pagina a qual preciso exibir uma tabela em HTML contendo os Horarios, Pacientes ... que vem de uma table de meu banco mysql.
      Acontece que consigo formar a tabela, ajustar a data para a data atual, exibir linha a linha.
      Porém nos campos onde deveria aparecer o nome do paciente aparece o Numero de sua FK ( Chave estrangeira ), já tentei com inner join de diversas formas e não acerto, alguém me ajudaria?
      .
      As minhas tabelas as quais busco os dados são: " pacientes" e "agenda" o campo de pacientes é nome  e o de agenda é codigo_paciente o banco se chama gerenciador.
      Eu preciso que nas celulas onde está   " $info[codigo_paciente] " apareça o nome do paciente . Caso eu resolva com o nome os outros dados eu consigo fazer pois são da mesma tabela.
      O codigo é o seguinte:
       
      ml>
      <head>
      <?php
      include("conexao.php");
      date_default_timezone_set('America/Sao_Paulo');
      $date = date('Y-m-d');
      ?>
      <title>Clinica </title>
      </head>
      <body>
      <table>
      <H1 ALIGN="center"><FONT FACE="Arial" SIZE="10" COLOR="black">Clinica</FONT></H1>
      <H2 ALIGN="center"><FONT FACE="Arial" SIZE="5" COLOR="black">  Hoje - <?php date_default_timezone_set('America/Sao_Paulo'); $datee = date('d/m/Y H:i'); echo $datee;?> </FONT></H2>
       
      </table>
      <?php
      include("conexao.php");
      $query = "select * from agenda WHERE Data BETWEEN ('$date') AND ('$date');";
      $resultado = mysql_query($query,$conexao) or die(mysql_error());
      $idpac = isset($_GET["idpac"]) && ctype_digit($_GET['idpac']);

      if(mysql_num_rows($resultado)>0)
      {
            print "<table border='3' ALIGN='center'><FONT FACE='Arial' SIZE='10' COLOR='black'>";
            print "<tr colspan='10' rowspan='10'><td id='celula0'>Hora</td><td id='celula1'>Paciente</td><td id='celula2'>Presente?</td><td id='celula3'>P.Saude</td><td id='celula4'>Tel</td><td id='celula2'>Histórico</td></tr>";
                while ($info = mysql_fetch_array($resultado))
                    {
               print "<tr colspan='10' rowspan='10'><td id='celula0'>$info[hora]</td> <td id='celula1'>$info[codigo_paciente]</td><td id='celula2'>$info[faltou]</td><td id='celula3'>$info[codigo_paciente]</td><td id='celula4'>$info[codigo_paciente]</td><td id='celula4'>$info[codigo_paciente]</td></tr>";
             }
            print "</table>";
       }
      ?>
      </body>
      </html>
       
       
      dando certo 5 - apagar.php
    • By Cesar Melo
      Olá. Gostaria de criar uma view que exibisse os campos relacionados às chaves estrangeiras.
      Criei duas tabelas, uma chamada "PRODUTOS" e outra chamada "PRODUTO_COMPOSICAO".
      Na tabela "PRODUTOS" temos os campos ID e NOME.
      Na tabela "PRODUTO_COMPOSICAO" temos os campos: PRODUTO_FINAL_ID e COMPOSICAO_ID.
      Ambos campos da tabela PRODUTO_COMPOSICAO são chaves estrangeiras da tabela PRODUTO. As duas são PRODUTO.ID.
      Na pratica, um produto é composto por outros diversos produtos, então eu gostaria de criar uma view que me exibisse a seguinte informação:
      "Produto_Final_ID, Produto_Final_Nome, Composicao_id, Composicao_nome".
       
      Na simples view que eu criei, ou exibe o nome do produto final ou o nome da composição.
      VIEW vw_produto_composicao AS select produto_composicao.produto_final_id AS produto_final_id, produtos.nome AS produto_final_nome, produto_composicao.composicao_id AS composicao_id, produtos.nome AS composicao_nome, from (produto_composicao join produtos ON ((produto_composicao.composicao_id = produtos.id))) Ficou confusa a explicação ou é tranquilo pra entender?
       
      Obrigado!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.