Ir para conteúdo

Arquivado

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

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.

 

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por andreygsantos
      Pessoal, normalmente faço modelagem de banco de dados usando o CA ErWin, mas precisei utilizar a ferramenta de modelagem do MySQL Workbench 8.0 Community.
      O problema ocorre quando a ferramenta começa a "enfeitar o pavão" quando se trata de FK. Vou mostrar um exemplo básico:

      Temos aqui 3 tabelas representando condomínio, unidades e vagas. As vagas pertencem ao condomínio, assim como as unidades. As vagas podem pertencer a unidades diferentes no decorrer do tempo porque não são vagas fixas, portanto não posso pendurar vaga na unidade.
      Problema 1: FK recebe o nome da tabela origem automaticamente.
      Até aqui posso renomear o atributo ou alterar as configurações de modelagem.
       

      Atributos renomeados, temos o seguinte modelo representado acima. Agora vamos levar a PK da entidade UNIDADE para ser FK não identificação na entidade VAGA.
       

      E agora temos o Problema 2: a ferramenta não entende que o atributo CondomínioID já existe e cria novamente com o prefixo da entidade origem. Parece um problema besta e fácil de resolver apagando o atributo duplicado e mantendo apenas UnidadeID, mas ao sincronizar com o banco de dados, começam a surgir erros com índices.
      Abaixo mostro como fica a modelagem no ERWin sem qualquer interferência:
       

      Como podem ver, a modelagem fica perfeita. O ErWin entende que o atributo já existe na entidade e leva apenas o atributo que vai diferenciar para fazer o relacionamento.
       
      Vocês devem estar se perguntando por que eu não uso o ErWin então... Mas a versão do ErWin que tenho não suporta MySQL após a versão 5.x e uma licença nova dessa ferramenta vai me custar 1 rim, senão os 2... Teoricamente, o Workbench deveria fazer essa modelagem sem problemas, mas eu não conheço bem e talvez possa ser alguma configuração. Alguém teria uma luz?
      Obrigado.
       
    • Por phfmiranda
      Bom dia,
       
      Tenho um BD com 3 tabelas
       
      tb_cliente - Chave primaria id_cliente
      tb_dados - chave estrangeira id_cliente
      tb_crediario - chave estrangeira id_cliente
       
      O que acontece é que como já temos dados nas mesmas não estou conseguindo criar a chave estrangeira abaixo, tem alguma ideia de como criar a mesma sem alterar os dados??
       
      ALTER TABLE `tb_dados` ADD FOREIGN KEY (`id_cliente`) REFERENCES `tb_cliente`(`id_cliente`) ON DELETE CASCADE  
      Obrigado.
    • Por Hamilcar
      Bom dia a todos!
      Estou tentando fazer uma base de dados onde tenho 3 tabelas, usuario, requerimento e escala. Onde um usuario faz um requerimento e deste requerimento geraria uma escala.
      Gostaria de preparar a base de dados para que quando cadastrar um requerimento, esse requerimento só seja incluído se houver um usuario ligado a este requerimento, e quando cadastrar uma escala, esta seja ligada ao requerimento que a gerou, e quando for editar ou excluir, não exclua um requerimento sem excluir a escala.
      Tentei aqui um modelo com chave estrangeira, mas quando incluo um requerimento que não esteja vinculado a um usuario, dá um "warning" e inclue assim mesmo, e para excluir também faz da mesma forma. abaixo as tabelas.
       
      CREATE TABLE `usuario` (
        `nome_usuario` varchar(100) DEFAULT NULL,
        `id_usuario` int(11) NOT NULL,
        `telefone_usuario` varchar(20) DEFAULT NULL,
        `data_cadastro_usuario` datetime DEFAULT NULL,
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
       
      CREATE TABLE `requerimento` (
        `id_requerimento` int(11) NOT NULL,
        `data_requerimento` datetime NOT NULL,
        `status_requerimento` enum('0','1') NOT NULL DEFAULT '0',
        `id_usuario` int(11) NOT NULL
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
       
      CREATE TABLE `escala` (
        `id_escala` int(11) NOT NULL,
        `local_escala` varchar(100) NOT NULL,
        `horário_escala` varchar(100) NOT NULL,
        `data_escala` date NOT NULL,
        `id_requerimento` int(11) NOT NULL
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
       
      --
      -- Índices para tabela `escala`
      --
      ALTER TABLE `escala`
        ADD PRIMARY KEY (`id_escala`),
        ADD KEY `fk_requerimento_escala` (`id_requerimento`);
      --
      -- Índices para tabela `requerimento`
      --
      ALTER TABLE `requerimento`
        ADD PRIMARY KEY (`id_requerimento`),
        ADD KEY `fk_usuario_requerimento` (`id_usuario`);
      --
      -- Índices para tabela `usuarios`
      --
      ALTER TABLE `usuario`
        ADD PRIMARY KEY (`id_usuario`);
      COMMIT;
    • Por 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
    • Por 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
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.