F_Jr 0 Denunciar post Postado Abril 1, 2013 E aí pessoal blz?É o seguinte fiz um formulário de cadastro de usuários, validei os campos. Nos campos email e cpf, fiz uma validação para não permitir que usuários diferentes tenha o mesmo email e/ou o mesmo cpf no banco de dados. Segue um exemplo fictício abaixo: CODIGO USUARIO EMAIL CPF 1 fulano fulano@hotmail.com 000.000.000-00 2 beltrano beltrano@gmail.com 333.333.333-33 3 ciclano ciclano@yahoo.com.br 222.222.222-22 Até aqui está ok! Só lembrando que estou usando o php e o mysql. Se um usuário cadastrar um email ou cpf já existente aparecerá a seguinte mensagem para ele: "Erro! Você não pode cadastrar dois usuários com o mesmo email.", este é um erro personalizado que criei. Então com base nessas informações não acontecerá esses tipos de erros que está no exemplo fictício abaixo de email e cpf duplicado: CODIGO USUARIO EMAIL CPF 1 fulano fulano@hotmail.com 000.000.000-00 2 beltrano fulano@hotmail.com 333.333.333-33 3 ciclano ciclano@yahoo.com.br 333.333.333-33 ---------------------------------------------------------------------------------------------------------------------------------- Já no formulário de edição de usuários, os campos continuam todos validados. As informações dos campos email e cpf não mudam, só que quando vou clicar no botão de alterar os dados, ele informa o seguinte erro: "Erro! Você não pode cadastrar dois usuários com o mesmo email.". Quero saber como faço a alteração do formulário do usuário permanecendo os dados do email e cpf, e sem aparecer a mensagem, como que posso fazer esta verificação sem tirar a validação. E um outro exemplo se o usuário decide mudar o email, como faço para verificar se o email digitado pelo usuário não existe ainda no banco de dados? Eu mesmo podia ter retirado a validação do campo email e cpf no formulário de edição de usuários, mas se agir desta maneira vai abrir uma brecha para dados duplicados de email e cpf! Espero ter sido esclarecedor na minha dúvida! Para quem tiver paciência de ler e responder este post, desde já agradeço pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Abril 1, 2013 Quero saber como faço a alteração do formulário do usuário permanecendo os dados do email e cpf, e sem aparecer a mensagem, como que posso fazer esta verificação sem tirar a validação. Pode exiber o CPF com o campo disable -> pois podemos dizer que mudar de CPF não é algo comum. E se está editando não teria que dar este erro. Pois você estaria dando um Update não um Insert, E um outro exemplo se o usuário decide mudar o email, como faço para verificar se o email digitado pelo usuário não existe ainda no banco de dados? Para não duplicar o email na edição, antes de dar o Update, faz a consulta do email. Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Abril 1, 2013 faz uma verificação do id...se o id do cadastro do e-mail for igual do usuário q está atualizando os dados vc permite atualizar ! ou pode também definir esse campos da tabela como unique. Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Saraiva 84 Denunciar post Postado Abril 2, 2013 Cara o geito mais simples sem tirar a verificação é você verificar se não existe o campo e-mail ou cpf igual nos outros registros menos no que você esta editando. um exemplo simples. SELECT count(*) FROM sua_tabela WHERE email = '$email' OR cpf = '$cpf' AND id not in ('$id') not in() é utilizado para se fazer subconsultas que não conterão as linhas encontradas nas subconsulta ou pode se definir ja os parametros que se alguma linha de sua tabela tiver não sera retornado o registro. acho que minha explicação foi horivel, tomara que tenha conseguido entender. Exemplos sobre o not in() http://www.roseindia.net/sql/mysql-example/not-in.shtml Compartilhar este post Link para o post Compartilhar em outros sites
F_Jr 0 Denunciar post Postado Abril 3, 2013 E aí pessoal beleza? Desde de já agradeço pela explicação de vocês. Com as informações que vocês passaram consegui resolver o problema sem tirar a validação dos campos email e cpf, durante a atualização do formulário de usuários. Então postarei aqui a maneiro como resolvi o problema. Vamos lá: Criei um arquivo chamado teste.php, também criei um banco chamado teste, com a tabela também chamada teste e nele adicionamos três campos id, nome e email, sendo adicionado dados para explicação deste exemplo. <?php //Selecionamos a tabela $query = "SELECT * FROM teste WHERE email = '$email' AND id <> '$id' "; //Executamos a tabela $qr = mysql_query($query) or die (mysql_error()); //Se não existir dados na minha tabela, ele irá mostrar a mensagem abaixo. if(mysql_num_rows($qr) <= 0) { print 'Não há dados nesta tabela!'; } //Se existir dados no banco iremos jogar estes dados para dentro de uma tabela else { print '<table cellpadding="3" cellspacing="3" border="1px">'; print '<tr>'; print '<td>Código</td>'; print '<td>Nome</td>'; print '<td>Email</td>'; print '</tr>'; while($res = mysql_fetch_assoc($qr)) { print '<tr>'; print '<td>'.$res['id'].'</td>'; print '<td>'.$res['nome'].'</td>'; print '<td>'.$res['email'].'</td>'; print '</tr>'; } print '</table>'; } ?> Ao alterar dados do usuário no formulário de código igual a 3 por exemplo, que está sendo passado pelo parâmetro da url, o nosso select foi traballhado da seguinte forma: selecione os dados da tabela teste desde que o email do banco seja igual ao email que está no formulário e o id do banco seja diferente do id que está sendo passado por parâmetro na url. Então isto permitirá que eu realize a alteração no formulário do usuário mesmo com a validação. E neste mesmo select ele já faz verificação se existe ou não um outro email, se existir ele não faz a alteração agora se não existir o email, então ele faz a alteração. Valeu Pessoal! Compartilhar este post Link para o post Compartilhar em outros sites