Ir para o conteúdo

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

Verificar antes de inserir no banco

6 de Junho de 2012, 9:16 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 7 vezes

Bom dia!

Fiz o exemplo do crud, gostaria de saber como faria para verificar antes de inserir um registro.

Seria alterar o método do Dao? Ou seria antes de salvar?

Ou já existe alguma coisa pronta nesse sentido?

Obrigado

Autor: Samuel Cotta


33 comentários

  • 38b59b8c61ba1b9acb9f08c2e26f123c?only path=false&size=50&d=404Samuel Cotta(usuário não autenticado)
    6 de Junho de 2012, 9:29

     

     

    Estava tentando algo nesse sentido:

    <?Php
    $vo = new Tb_usuarioVO;
    /**
    como os campos do formulário possuem o mesmo nome dos campos da tabela, podemos
    utilizar o mátodo setVo() da classe TForm para carregar o objeto vo com os valores
    do dos campos do formuário, caso contrário teríamos que utilziar
    os métodos sets do objeto vo para cada campo. Exemplo:
    $vo->setId($frm->get('id'));
    $vo->setPlaca($frm->get('placa'));
    $vo->setNome($frm->get('nome'));
    ...
    */
    $frm->setVo($vo);

    //verifica antes de salvar

    $consulta=Tb_usuarioDAO::selectAll(where="nome=$frm->get('nome')")
    $num_reg=pg_affected_rows($consulta);
    // Gravando o dado no banco de dados
    if($num_reg>=1){
    if( Tb_usuarioDAO::insert($vo) )
    {
    $frm->setMessage('Usuário salvo com SUCESSO!');
    // chamar a ação limpar para limpar os campos após a gravação
    include('limpar.php');
    }
    else
    {
    $frm->addError(Tb_usuarioDAO::getError());
    }
    }else{
    $frm->setMessage('Usuário'.$frm->get('nome').'já existe!');
    }
    ?>

    • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
      6 de Junho de 2012, 9:44

       

      Samuel,

      assim não vai funcionar,pois o metodo selectAll retorna null ou o array de dados, que não pode ser utilizado no pg_affected_rows($consulta);

      Teste assim:

      if( Tb_usuarioDAO::selectAll(null, "nome='".$frm->get('nome')."'"))
      {
          $frm->setMessage('Usuário'.$frm->get('nome').'já existe!');    
      }

      else

      {

      ....

      }

      Abraço.

Essa comunidade não possui posts nesse blog