Jump to content


Photo

Evitar Registros Duplicados


  • Faça o login para participar
4 replies to this topic

#1 Spawn Again

Spawn Again

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 18/10/2004, 09:44

Eae pessoal blz?...
entuam... eu fiz um cadastro de usuários... até ai blz... o problema eh o seguinte... eu não consigo barrar o registro duplicado... não sei o que estou fazendo de errado... o sistema está aceitando cadastrar mais de 1 usuarios com o mesmo nick... vou colocar o meu codigo abaixo... se alguem souber me dizer oq ue eu estou fazendo de errado ou tiver um exemplo diferente pra eu poder barrar isso eu agradeço...

inserirusuarios.php
<?
include "includes/config.php";
$res1 = mysql_connect("$host", "$user", "$senha");
$sql = "SELECT * FROM membros";
$resultado = mysql_db_query("$banco", "$sql", $res1)
or die ("Não foi possível realizar a consulta ao banco de dados");

	if(mysql_num_rows($resultado)>0) {

  while ($linha=mysql_fetch_array($resultado)) {
  $nickbd = $linha["nick"];

  }
	}
// Verifica se o nick já existe no banco de dados.
	if($nickuser == $nickbd){
  echo "<script>window.alert(\"O nick que você digitou já existe em nosso bando de dados, tente outro.\");
        window.location = 'javascript:history.back(-1)';
        </script>";
  }
// Verfica se os campos estão em branco
	
	elseif(empty($_POST['prinome']) || empty($_POST['cidade']) ||
 	 empty($_POST['email']) || empty($_POST['sexo']) ||
 	 empty($_POST['nickuser']) || empty($_POST['senhamembros']))
        {
	echo "<script>window.alert(\"Algum campo obrigatório você deixou em branco.\");
       window.location = 'javascript:history.back(-1)';
       </script>";

	}
        else
	{
// Se estiver tudo certo adiciona a categoria ao banco de dados.
	$sql = "insert into membros "
	." (prinome, cidade, email, msn, icq, sexo, avatar, nick, senha, datacad, interesses)"
	." values ('$prinome', '$cidade', '$email', '$msn', '$icq', '$sexo', '$avatar', '$nickuser', '$senhamembros', '$datacad', '$interesses')";
	$res2 = mysql_db_query("$banco", "$sql", $res1);
	
	mysql_close($res1);
	setcookie("nick_",$nickuser, time()+2592000);
	echo "<script>window.alert(\"Usuário $nickuser cadastrado com Sucesso você será redirecionado para a Pagina principal.\");</script>";
	echo "<meta http-equiv='refresh' content='0;URL=index.php'>";
	}
?>

Agradeço desde já,
Douglas

#2 Marcão

Marcão

    Marcãaaaaaaaao

  • Usuários
  • 1754 posts
  • Sexo:Não informado
  • Interesses:Faixa preta de Muay-Thay<br>Faixa Roxa de Jiu-Jitsu<br>:D<br>Um dia eu chego lá

Posted 18/10/2004, 09:52

cara...
é so vc salvar no banco com um id unico
ex:
id | user
1 | eu
2 | vc

ae vc manda procurar:

$sql = mysql_query("select id from tabela where user = '".$_POST['nome']."'");
$encontrados = mysql_num_rows($sql);
if($encontrados){
echo "erro";exit();
}
Marcão -=- PHP é coisa de MESTRE e falo mais nada -=-
Minha Foto
"Não temas,segue adiante,não olhes para trás!!
Segura na mão de
Deus e vai.."

#3 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 18/10/2004, 09:54

Crie um indice de valor unico que seu problema será resolvido, só terá que fazer o tratamento da exceção que será retornada pelo MySQL.
ALTER TABLE membros ADD UNIQUE idx_membros_nick (nick)

------
Mero mortal!

#4 Spawn Again

Spawn Again

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 18/10/2004, 12:39

valew galera... chegando em casa eu vou tentar

#5 _tHeFlAsH_

_tHeFlAsH_

    Normal

  • Usuários
  • 105 posts
  • Sexo:Não informado
  • Localidade:Curitiba

Posted 18/10/2004, 14:57

tenta fazer a pesquisa assim .. comigo funciona beleza...

$pesq = mysql_query("SELECT * FROM `sua_tabela` WHERE nick = '$nick'", $db);
$mostra = mysql_num_rows($pesq);
if ( $mostra == 1 ) {
$msg .= "Desculpe, mas já existe uma pessoa cadastrada com esse login.";
}
if ( $msg == "" ) {

essa eh a parte da pesquisa... tirei a conexao e blablabla ... tenta ae..

t+

Edição feita por: _tHeFlAsH_, 18/10/2004, 14:58.

Glauco Maschio
www.glaucomaschio.com.br




2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq