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

Usuários repetidos no Banco de Dados


neip2p

Pergunta

B) Como eu faço para não cadastrar usuários repetidos em meu banco de dados MySQL, meu codigo atual para inserção é:

<?

include ("conecta.php");

$nome = $_POST['nome'];

$senha = $_POST['senha'];

$insere = mysql_query("INSERT INTO `login`( `nome`, `senha`) VALUES ('$nome','$senha')") or die(mysql_error());

if($insere)

echo "Cadastro realizado com sucesso!";

else

echo "Não foi possível fazer o seu cadastramento!";

?>

Obrigado desde já...

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Antes de tudo, coloque o campo nome da tabela login como Chave Primária. Isso fará com que não exista nenhum nome igual ao outro.

Depois disso, é só tratar. Há várias maneiras, mais simples ou mais complexas, dependendo do seu nível de conhecimento..

Uma solução mais simples, mas menos otimizada é procurar no banco, antes de incluir, se já existe este usuário, então mostra uma mensagem de erro e não insere. Se inserir, o próprio banco vai dar erro..

Outra solução é tirar o or die do mysql_query. Ao invés disso, coloque @ antes (não sei se, por padrão, ao inserir um registro duplicado ele retorna warning ou error, então é melhor previnir).. Logo depois, teste o mysql_errno(). Essa função retorna o resultado de um consulta do SQL. Aí, é só comparar o código (numérico) pra ver qual foi o erro. Nesse caso, seria o código 1062. Nesse link [http://dev.mysql.com/doc/refman/5.0/en/err...ges-server.html] há uma lista com vários códigos possíveis..

Editado por ikkinet
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --hermesmc --
Antes de tudo, coloque o campo nome da tabela login como Chave Primária. Isso fará com que não exista nenhum nome igual ao outro.

Depois disso, é só tratar. Há várias maneiras, mais simples ou mais complexas, dependendo do seu nível de conhecimento..

Uma solução mais simples, mas menos otimizada é procurar no banco, antes de incluir, se já existe este usuário, então mostra uma mensagem de erro e não insere. Se inserir, o próprio banco vai dar erro..

Outra solução é tirar o or die do mysql_query. Ao invés disso, coloque @ antes (não sei se, por padrão, ao inserir um registro duplicado ele retorna warning ou error, então é melhor previnir).. Logo depois, teste o mysql_errno(). Essa função retorna o resultado de um consulta do SQL. Aí, é só comparar o código (numérico) pra ver qual foi o erro. Nesse caso, seria o código 1062. Nesse link [http://dev.mysql.com/doc/refman/5.0/en/err...ges-server.html] há uma lista com vários códigos possíveis..

Não creio que seja uma boa solução colocar o campo nome como chave primária. Entendo que a idéia é não ter nomes duplicados, mas se você tiver homonimos como vai fazer? O ideal é que a chave primária seja um campo com código do usuário(númérico auto-incremental). Crie em sua tabela um campo para login onde você poderia armazenar um nome só para login, por exemplo: José da Silva, login jose1, senha xxxx;

José da Silva, login jose2, senha yyyy;

Link para o comentário
Compartilhar em outros sites

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...