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

[Dúvida] Insert em várias tabelas relacionadas


BetoGroo

Pergunta

Olá!

Tenho as seguintes tabelas relacionadas:

bancob.png

Com este script que eu criei, funciona normalmente:

<?php
  require_once 'conn.php';
  
  
  $nome             = $_POST['nome'];
  $nascto_func      = $_POST['nascto_func']; 
  $delegacia        = $_POST['delegacia'];
  $cargo            = $_POST['cargo'];
  
  $logradouro_end   = $_POST['logradouro_end'];
  $numero_end       = $_POST['numero_end'];
  $bairro_end       = $_POST['bairro_end'];
  $cep_end          = $_POST['cep_end'];
  $comp_end         = $_POST['comp_end'];  
  
  $ddd_tel          = $_POST['ddd_tel'];
  $numero_tel       = $_POST['numero_tel'];
  
  
  
  if ((!isset($_POST['ddd_cel'])) || (!isset($_POST['numero_cel']))){
        $ddd_cel          = NULL;
        $numero_cel       = NULL;
  }else{
        $ddd_cel          = $_POST['ddd_cel'];
        $numero_cel       = $_POST['numero_cel'];
  }

  $sql  = "INSERT INTO funcionario (rl_id_dele, rl_id_cargo, nome_func, nascto_func) ";
  $sql .= "VALUES ($delegacia, $cargo, '$nome', '$nascto_func') ";
  
  echo "<br>$sql";//apenas para testar a consulta
  
  if(mysql_query($sql)){
      echo " - Certo";
  }else{
      echo " - Errado";
  }
  $sql = "SELECT max(id_func) FROM funcionario ";
  echo "<br>$sql<br>";//apenas para testar a consulta
  
  $rl_id_func = mysql_result(mysql_query($sql),0);//maior id de funcionario cadastrado
  
  
  $sql  = "INSERT INTO telefone (rl_id_func, rl_id_tipo_tel, numero_tel, ddd_tel) ";
  $sql .= "VALUES ($rl_id_func, 1, '$numero_tel', '$ddd_tel') ";// 1 é sempre telefone fixo
  
  if(($ddd_cel != null) ||($numero_cel != null)){
      $sql .= ",($rl_id_func, 2, '$numero_cel', '$ddd_cel') "; // 2 é sempre telefone celular
  } 
  
  echo "<br><br>$sql<br><br>"; //apenas para testar a consulta
  if (mysql_query($sql)) {
      echo "- Certo";
  }else{
      echo "- Errado";
  }
  
  $sql  = "INSERT INTO endereco (logradouro_end, numero_end, bairro_end, cep_end, comp_end) ";
  $sql .= "VALUES ('$logradouro_end', '$numero_end', '$bairro_end', '$cep_end', '$comp_end') ";
  
  
  
  echo "<br><br>$sql<br><br>";
  if (mysql_query($sql)) {
      echo "- Certo";
  }else{
      echo "- Errado";
  }
  
  $sql = "SELECT MAX(id_end) FROM endereco ";
  $funcionario_id_end = mysql_result(mysql_query($sql),0); //maior id de telefone cadastrado  
  
  echo "<br><br>$funcionario_id_end";//apenas para testar a consulta
  
  $sql = "CALL ADD_func_end($rl_id_func, $funcionario_id_end)"; //chama a procedure que insere em tabela N:M
  
  echo"<br><br>$sql";
  if (mysql_query($sql)) {
      echo "- Certo";
  }else{
      echo "- Errado";
  }
  
?>

Porém, gostaria de saber se fiz certo, ou se teria alguma maneira mais fácil de fazê-lo.

Lembrando que o id_tel é inserido através de uma TRIGGER, e os dois campos da tabela RL_funcionario_endereco através de uma procedure!

Um abraço!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

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