Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Retornar LastID dentro da função Salvar

4 de Outubro de 2013, 14:04 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 10 vezes

Olá,
Gostaria de saber se é possível retornar o LastID dentro da função salvar(estou usando a mesma função salvar do cadastro de usuário.

A minha intenção é exibir uma página tipo modal com os detalhes do que acabou de ser gravado no banco.
Se possível, posta um exemplo de uso.
Desde já agradeço.

Autor: Jair de Jesus


33 comentários

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    6 de Outubro de 2013, 8:54

     

    Jair,

    a recuperação do lastId depende do banco de dados que você está utilizando, se puder informar o banco e o código da sua função salvar eu posso tentar lhe ajudar.

    abraço.

    • Cff659012a9d95f8837b6d50d8c14c69?only path=false&size=50&d=404Jair de Jesus(usuário não autenticado)
      6 de Outubro de 2013, 10:18

       

      Olá Luiz, obrigado pela resposta.

      O banco é MySQL. A função salvar é idêntica a do sistema de segurança, segue:

      <?php
      $vo = new ClientesVO();
      $frm->setVo($vo);
      $vo->setsenha1($frm->get('senha1'));
      ClientesDAO::insert($vo);
      ?>

      Pretendia que logo após gravar os dados no banco, me fosse retornado o valor do campo identificador "id_cli" que é a chave primaria ou todos os dados que acabaram de ser gravados, ai então montaria uma página exibindo os tais detalhes.

       Aproveitando... Usei o código do cadastro de usuários para essa aplicação e notei que, ao editar um usuário, a senha era resetada do banco porque ela não retornava ao form por ter nome diferente, ficava em branco e era gravada vazia.

      Resolvi da seguinte forma e posto como dica para uma futura correção, se realmente necessária:

      01 - Troquei o nome do campo "senha1" no form para o mesmo nome do campo do banco. Assim a função "grideAlterar" prencheu o campo da senha com o conteúdo do banco.

      02 - Ai veio o erro "senhas não conferem", porque somente o campo "senha1" era preenchido pela função grideAlterar, então para preencher o campo "senha2" apenas durante a edição, coloquei o código abaixo dentro da função grideAlterar:
                  jQuery('#senha2').val(document.getElementById('senha1').value);

      Dei uma pesquisada no fórum e não me bati com a solução para esse detalhe, por isso então postei a pequena dica(gambiarra).

      • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
        13 de Outubro de 2013, 20:21

         

        Jair,

        desculpe a demora para responder, mas estive enrolado estes dias. Caso ainda não tenha encontrado a solução para ler o id gerado, segue a dica: no mySql pode ser utilizada a função nativa da classe pdo lastInsertId(), então logo apos o comando insert() chame a função assim: $id = TPDOConnection::getInstance()->lastInsertId() ou self::getInstance()->lastInsertId() se estiver dentro da classe DAO da tabela.

        Quanto ao campo senha, eu não deixo ele no comando update da tabela, eu crio um método só para atualizar a senha e chamo ele após o update caso tenha sido enviada a senha preenchida. Tambem não retorno a senha para a tela de manutenção ( alteração ) dos dados, o campo senha deve sempre ficar em branco.

        Abraço.

Essa comunidade não possui posts nesse blog