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

PDO - Forms com inserção de dados em mais do que uma tabela


anacarine29

Pergunta

Boa noite.

Estou a elaborar um projecto em que tenho uma parte de registo de utilizadores num pagina qeb e estou a utilizar o PDO para faze-lo, o meu problema é que tenho 3 tabelas onde preciso de inserir os dados.

Uma tabela é a tabela utilizador (utilizadorId - PK, nome, morada,localidade,codigoPostal, nomeUtilizador, password, nivelAcesso), a segunda tabela é a utilizadorContacto(UtilizadorId-PK, ContactoID - PK) e a terceira é a Contacto(ContactoId - PK, valor, tipo).

o Código do forms é o seguinte:

<form name="regista_utilizador" method="post" action="index.php?pg=registo_ok" enctype="multipart/form-data">
      <fieldset>
       <table align="left" cellspacing="0" cellpadding="0" >
          <tr>
            <td colspan="150" >
             <label>
               <span>Nome</span>
               <input type="text" name="nome" class="nome"/>
             </label>
            </td>
          </tr>
          <tr>
            <td colspan="150">
              <label>
                <span>Morada</span>
                <input type="text" name="morada" class="morada"/>
              </label>
           </td>
         </tr>
         <tr >
          <td colspan="75">
            <label>
               <span>Localidade</span>
               <input type="text" name="localidade" class="localidade"/>
            </label>
         </td>
          <td  colspan="75">
            <label>
              <span>Código Postal</span>
              <input type="text" name="cp" class="cp"/>
            </label>
         </td>
         </tr>
         <tr>
           <td colspan="75">
             <label>
               <span>Telefone</span>
               <input type="text" name="telefone" class="telefone"/>
            </label>
         </td>
          <td colspan="75">
            <label>
               <span>Telemóvel</span>
               <input type="text" name="telemovel" class="telemovel"/>
            </label>
        </td>
        </tr>
        <tr>
           <td colspan="75">
             <label>
               <span>E-mail</span>
               <input type="text" name="email" class="email"/>
             </label>
          </td>
          <td colspan="75">
            <label>
               <span>Contribuinte</span>
               <input type="text" name="nif" class="nif"/>
            </label>
      </td>
       </tr>
       <tr>
         <td colspan="75">
           <label>
               <span>Nome Utilizador</span>
               <input type="text" name="nome_utilizador" class="utilizador"/>
           </label>
        </td>
         <td colspan="75">
           <label>
             <span>Palavra Passe</span>
             <input type="text" name="password" class="password"/>
           </label>
         </td>
      </tr>
       </table>
       <input type="submit" name="regista_utilizar" value="Registar" class="btn" />
        <input type="submit" name="regista_utilizar" value="Cancelar" class="btn" />
       


      </fieldset>
      </form>
O Código que tenho para inseir os dados na bd é o seguinte:
<?php
        $clienteNivelAcesso  ='cliente';
        $clienteNome         = strip_tags(trim($_POST['nome']));
        $clienteMorada       = strip_tags(trim($_POST['morada']));
        $clienteLocalidade   = strip_tags(trim($_POST['localidade']));
        $clienteCp           = strip_tags(trim($_POST['cp']));
        $clienteTelefone     = strip_tags(trim($_POST['telefone']));
        $clienteCTelefone    ='telefone';
        $clienteTelemovel    = strip_tags(trim($_POST['telemovel']));
        $clienteCTelemovel   ='telemovel';
        $clienteEmail        = strip_tags(trim($_POST['email']));
    $clienteCEmail       ='Email';
        $clienteNif          = strip_tags(trim($_POST['nif']));
        $clienteUtilizador   = strip_tags(trim($_POST['nome_utilizador']));
        $clientePassword     = strip_tags(trim($_POST['password']));
       
        $sql_registaCliente = 'INSERT INTO utilizador(nomeUtilizador,nome, morada,localidade, codigoPostal,nif,               password,nivelAcesso)';
        $sql_registaCliente .='VALUES(:nomeUtilizador,:nome, :morada,:localidade,:codigoPostal,:nif, :password,:nivelAcesso)';
       
        $sql_registaContacto ='INSERT INTO Contacto(valor;tipo)';
        $sql_registaContacto .='VALUES(:valor,:tipo)';
       
       
       
        try{
                $query_registaCliente = $conecta ->prepare($sql_registaCliente);
                $query_registaCliente -> bindValue(':nomeUtilizador',$clienteUtilizador,PDO::PARAM_STR);
                $query_registaCliente -> bindValue(':nome',$clienteNome,PDO::PARAM_STR);
                $query_registaCliente -> bindValue(':morada',$clienteMorada,PDO::PARAM_STR);
                $query_registaCliente -> bindValue(':localidade',$clienteLocalidade,PDO::PARAM_STR);
                $query_registaCliente -> bindValue(':codigoPostal',$clienteCp,PDO::PARAM_STR);
                $query_registaCliente -> bindValue(':nif',$clienteNif,PDO::PARAM_STR);
                $query_registaCliente -> bindValue(':password',$clientePassword,PDO::PARAM_STR);
                $query_registaCliente -> bindValue(':nivelAcesso',$clienteNivelAcesso,PDO::PARAM_STR);
                $query_registaCliente -> execute();
               
                $utilizadorId = $conecta -> lastInsertId();
                $sql_registaContacto = $conecta->prepare($sql_registaContacto);
                $sql_registaContacto -> bindValue(':valor',$clienteTelefone,PDO::PARAM_STR);
                $sql_registaContacto -> bindValue(':tipo',$clienteCTelefone,PDO::PARAM_STR);
                $sql_registaContacto -> execute();

A partir daqui já não sei como fazer, so estou a inserir o telefone, ainda me faltam os valores para o telemovel, email e inseir os id's na tabela utilizadorContactos. alguém me pode dar uma dica?

Editado por anacarine29
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...