koubajr Postado Abril 5, 2011 Denunciar Share Postado Abril 5, 2011 Senhores, fiz um sistema para validar se o nome já existe ou não no banco de dados.Porém, por incrível que pareça, dessa forma que eu fiz, está funcionando. se vocês perceberem no IF, os comandos estão invertidos, pois o certo seria:se $contar == $nome, deveria aparecer a mensagem:nome já existente. mas se eu colocar assim, não funciona.agora deste jeito que eu fiz, funciona perfeitamente.alguém poderia me explicar o que está acontecendo? porque eu não estou entendendo o meu próprio código.abçs a todos e obrigado..<?php include"conexao.php"; $nome = $_POST['nome']; $senha = $_POST['senha']; $nome_bd = mysql_query("SELECT * FROM cadastro WHERE nome='$nome'") or die (mysql_error()); $contar = mysql_num_rows ($nome_bd); if($contar == $nome){ $cadastra = mysql_query("INSERT INTO cadastro values('','$nome','$senha')"); $grava = mysql_query($cadastra); echo "cadastro efetuado com sucesso"; }else{ echo"nome já existente"; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MLeandroJr! Postado Abril 5, 2011 Denunciar Share Postado Abril 5, 2011 O que você fez aí foi contar o número de registros existentes e verificar se o nome inserido é igual a este número.Como provavelmente o nome não será igual, ele retornará dizendo que o nome já existe.Se você colocar um nome que ainda não existe no banco, ele fará a mesma coisa.Pra ele funcionar adequadamente, o correto seria:<?php include"conexao.php"; $nome = $_POST['nome']; $senha = $_POST['senha']; $nome_bd = mysql_query("SELECT * FROM cadastro WHERE nome='$nome'") or die (mysql_error()); $contar = mysql_num_rows ($nome_bd); if($contar > 0){ echo"nome já existente"; }else{ $cadastra = mysql_query("INSERT INTO cadastro values('','$nome','$senha')"); $grava = mysql_query($cadastra); echo "cadastro efetuado com sucesso"; } ?>Já que com mysql_num_rows() você trabalha com números. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 koubajr Postado Abril 5, 2011 Autor Denunciar Share Postado Abril 5, 2011 Puts, funcionou mesmo.era isso ai. agora eu entendi.vlw mesmo..abçssO que você fez aí foi contar o número de registros existentes e verificar se o nome inserido é igual a este número.Como provavelmente o nome não será igual, ele retornará dizendo que o nome já existe.Se você colocar um nome que ainda não existe no banco, ele fará a mesma coisa.Pra ele funcionar adequadamente, o correto seria:<?php include"conexao.php"; $nome = $_POST['nome']; $senha = $_POST['senha']; $nome_bd = mysql_query("SELECT * FROM cadastro WHERE nome='$nome'") or die (mysql_error()); $contar = mysql_num_rows ($nome_bd); if($contar > 0){ echo"nome já existente"; }else{ $cadastra = mysql_query("INSERT INTO cadastro values('','$nome','$senha')"); $grava = mysql_query($cadastra); echo "cadastro efetuado com sucesso"; } ?>Já que com mysql_num_rows() você trabalha com números. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
koubajr
Senhores, fiz um sistema para validar se o nome já existe ou não no banco de dados.
Porém, por incrível que pareça, dessa forma que eu fiz, está funcionando. se vocês perceberem no IF, os comandos estão invertidos, pois o certo seria:
se $contar == $nome, deveria aparecer a mensagem:nome já existente. mas se eu colocar assim, não funciona.
agora deste jeito que eu fiz, funciona perfeitamente.
alguém poderia me explicar o que está acontecendo? porque eu não estou entendendo o meu próprio código.
abçs a todos e obrigado..
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.