Jump to content
Vitoria Elias

Inserção de dados em duas tabelas simultaneamente

Recommended Posts

estou com um problema ao inserir dados em duas tabelas simultaneamente através do php, sou leiga no assunto ainda, procurei por algumas resposta pelo google mas apenas achei sobre o last_insert_id(); mas em relação ao meu codigo não sei como inserir de uma forma correta e também não sei se seria o certo inserir tudo em um mesmo método ou em dois diferentes, inclusive quando faço em dois metodos diferentes ele indica um erro na linha que contem "$this->conexao= NULL;" e quando apago essa linha no meu primeiro método ele armazena na tabela produto mas não na estoque. por favor se puderem me ajudar to precisando é pra trabalho de curso e não tenho outras fontes ou pessoas para consultar...

 

//controle.php

 

case "cadastrar":
        $u=new Usuario();
        $u->nome=$_POST['nome'];
        $u->tipo=$_POST['tipo'];
        $u->escala=$_POST['escala'];
        $u->quantidade=$_POST['quantidade'];
        $u->preco=$_POST['preco'];

        $m=new Manipula();
        $m->cadastraUsuario($u);
        $m->cadastraEstoque($u);

        $_SESSION['usuario']= serialize($u);
        header("location:../view/resposta.php");
    break;

 

 

//manipula métodos de cadastro

 

public function cadastraUsuario($u){
        try{
            //prepare é uma função erdada ou de herança de PDO, ela prepara para modificar BD
            $sql= $this->conexao->prepare(
                    "insert into produto(id_produto, nome, tipo, escala, quantidade, preco)"
                    . "values(null,?,?,?,?,?)");
            $sql->bindValue(1,$u->nome);
            $sql->bindValue(2,$u->tipo);
            $sql->bindValue(3,$u->escala);
            $sql->bindValue(4,$u->quantidade);
            $sql->bindValue(5,$u->preco);
            $sql->execute();
            $this->conexao=null;
        } catch (Exception $e) {
            echo "erro ao cadastrar";
        }
    }
    
    public function cadastraEstoque($u){
        
        $this->cadastraUsuario($u);
        try{
            //prepare é uma função erdada ou de herança de PDO, ela prepara para modificar BD
            $sql= $this->conexao->query(
                      " insert into estoque(id_setor, nome_setor, quant_setor, id_produto, quantidade)"
                    . "values(null,?,?,?,?,)");
            $sql->bindValue(6,$u->nome_setor);
            $sql->bindValue(7,$u->quant_setor);
            $sql->bindValue(8,$u->id_produto);
            $sql->bindValue(9,$u->quantidade);
            $sql->execute();
            $this->conexao= null;
        } catch (Exception $e) {
            echo "erro ao cadastrar";
        }
    }

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

  • Similar Content

    • By Pellegrini3834
      Ola galera do IMasters!!!!!!
       
      Estou com uma duvida eu tenho um CRUD em php MVC e queria saber em que camada fica as mensagens depois de uma realização de um evento por exemplo:
      Cadastro de Pessoa, depois de cadastrada quero que ele emita uma mensagem dizendo que a "PESSOA FOI CADASTRADA COM SUCESSO!!!!" e eu queria saber  em que parte ela fica se é no Controle ou na View porque sabemos que no modelo fica a parte referente a manipulação de dados. Alguem poderia colocar um exemplo pratico para entender o problema.
      Obrigado.
    • By Henrique Augusto Rohloff
      Olá! Sou iniciante e estou treinando para configurar uma página de buscas de produtos em um banco de dados.
      Os produtos já estão sendo encontrados quando a palavra bate com os itens do banco. A conexão com o banco de dados está funcionando corretamente. Porém, quando nada é encontrado, queria que aparecesse uma mensagem "Nenhum resultado, tente novamente." Já tentei com  else de tudo que é jeito mas não aparece corretamente... Qual é o jeito certo?
       
      Segue o código:
       
       
    • By maruoppolo
      Olá, tenho 2 tabelas:
       
      tb_dados: ID - MUSICA
       
      tb_votos: ID - VOTO - RADIO - MUSICA
       
      Preciso fazer uma query que traga as musicas da tb_dados porém ordenando pelo número de votos que ela teve na tb_votos.
       
      Então assim, existem 2 tipos de voto 1 = like e 2 = dislike, cada ver que um usuário vota eu pego qual radio que ele esta ouvindo e salvo no campo radio, o id da musica na tb_dados e salvo no campo musica da tb_votos e coloco o número 1 para like e 2 para dislike no campo voto.
       
      A query precisa contar quantos likes teve na tv_votos filtrando por radio e mostrando os resultados em ordem decrescente as musicas com mais likes.
       
      A ideia é trazer as 10 musicas com mais like de cada radio
       
      Alguma ideia de como fazer?? Estou enroscado nisso a dias.
    • By Chester1
      oi, eu to tentando mexer com servidores agora no PHP e esta dando um erro muito estranho que quando eu procuro em um programa que acha erros de sintaxe ele me diz que o erro esta no </HTML>    se alguem puder me dizer qual foi o erro que eu cometi eu agradeceria
       

       
      <HTML> <HEAD><TITLE>incluindo no banco de dados</TITLE></HEAD> <body> <BODY bgcolor="#d0d0d0"> <center> <h3>Lanchonete coma bem (voltada para o internauta)</h3> <h1>24horas</h1> <?php $login_digitado=$_POST['login']; $senha=$_POST['senha']; $nome=$_POST['nome']; $email=$_POST['email']; $telefone=$_POST['telefone']; $celular=$_POST['celular']; $endereco=$_POST['endereco']; $complemento=$_POST['complemento']; if ($login_digitado == "" || $senha == "" || $nome =="" || $email == "" || $telefone == "" || $endereco == "" || $complemento == "") { echo "existem(m) campos(s) de preenchimento obrigatorio em branco,<BR> infelizmente tera que voltar para preenche-lo(s)."; echo "<BR><a href=\"cadastro.php\">clique aqui para tentar novamente</a>"; } else { { $link=mysql_connect("localhost", "root", "") or die ("<h1>nao foi possivel conectar !!!</h1> ".mysql_error());  
      obs :estou trabalhando com formularios e servidores
         
         
         
         
      ?>
      </BODY>
      </HTML>
×

Important Information

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