+1

Como faço para informar a um usuário q está tentando se cadastrar,que o mesmo nome já existe?A sintaxe SQL não funciona!

criado por Rodrigo Ferreira de Barros em 09/07/2002 9:49pm
Nenhuma descrição foi enviada.

Lista de Respostas:

0
09/07/2002 11:33pm
(~22 anos atrás)
$valor_a_cadastrar = "André de Castro Zorzo";

$select = "select nome from usuario where nome = '$valor_a_cadastrar'";

agora basta tu verificar se retorna algum valor nesta consulta, caso retorne, sinal de que o dados já existe !

era essa tua dúvida !?

0
10/07/2002 6:03am
(~22 anos atrás)
Lyma respondeu:
Exemplificando melhor, veja o código abaixo que uso no PHPLojaFácil ( http://phpbrasil.com/scripts/script.php/id/303 ) para validar o cadastro de clientes:


// verifica se o email do cliente ja estah cadastrado...

$sql = mysql_query("SELECT * FROM clientes WHERE email_cliente = '$email_cliente'");

while($res = mysql_fetch_array($sql)){
$existe = $res[0];
}
if($existe){
$mensagem_erro .= '<font color="#FF0000">* Este e-mail já está cadastrado em nossos sistemas.<br><br>Utilize outro e-mail, ou verifique com o adminstrador do sistema se você já está cadastrado.<br><br>Obrigado!<br>';
$erro = 1;
} else {

mysql_query("INSERT INTO clientes (nome_cliente,email_cliente,senha_cliente,cidade_cliente,endereco_cliente,cep_cliente,cpf_cliente,rg_cliente,fone_cliente,estado_cliente) VALUES ('$nome_cliente','$email_cliente',password('$senha_cliente'),'$cidade_cliente','$endereco_cliente','$cep_cliente','$cpf_cliente','$rg_cliente','$fone_cliente','$estado_cliente')");
print "$nome_cliente, seu cadastro foi efetivado com sucesso!<br><br>A página principal será recarregada com seu usuário já logado.<br>Boas Compras!";
}

if ($erro == 1){
print $mensagem_erro; //mostra o erro gerado acima.
print "<font color=\"#000000\"><br>Clique em <a href=\"javascript:history.back(-1);\">Voltar</a> para corrigir.";
exit;
}


ok?

0
11/07/2002 9:01am
(~22 anos atrás)
Cléver Anjos respondeu:
Pode ser feito de uma maneira...
Basta tentar inserir o registro e tratar o erro.

// note o uso do @
$res = @mysql_query("INSERT blah blah")
if (mysql_errno()==1062) { // codigo de erro para registro duplicado
echo "Registro duplicado";
}

0
11/07/2002 12:21pm
(~22 anos atrás)
$query = mysql_query("select * from usuario where login='$login' or nome='$nome'",$conexao)
if ($query)
echo "Este usuário já existe";

soh tenha um cuidado....... existem nomes iguais e isso vc nao pode tratar..... trate pelo login do cara

0
13/07/2002 9:31pm
(~22 anos atrás)
Somente lembrando ao amigo Cléver Anjos, que o SQL só retornará um erro se o nome for chave primária. E colocar o nome como chave primária não é uma prática recomendável já que eu posso ter 30 cadastros de "José Silva" e outros 40 de "Maria Aparecida".
O ideal é controlar duplicidades pelo CPF (Maior confiabilidade) ou nome+nome_da_mae (Menor confiabilidade).

0
26/09/2002 5:49am
(~21 anos atrás)
Lyma respondeu:
A chave primária poderia ser um email do usuário... menos comprometedor que o CPF e tão eficiente quanto(alem de alimentar sua base de dados de mala-direta).

0
26/09/2002 5:51am
(~21 anos atrás)
Lyma respondeu:
Ah sim, esqueci de uma pequena ressalva... NUNCA esqueça de validar os dados do usuário vindos de um formulário web ANTES de submetê-los à uma query SQL ok?

0
30/03/2004 4:41pm
(~20 anos atrás)
Marcos Echevarria respondeu:
o bom é tu fazer o seguinte,

após o envio do formulários tu coloca um select para verificar se existe ou não algum nome igual ao enviado, se existe chama a página de cadastro de novo, senão aí sim tu executa o comando para inserir!

Abraços,
Marcos Echevarria

0
03/05/2005 10:30pm
(~19 anos atrás)
Alexandre Cerri respondeu:
Tenta algo como:

<?

$link = mysql_connect("servidor", "user", "senha");
mysql_select_db("sct", $link);
$result = mysql_query("SELECT * FROM nomedatabela WHERE campo='".$_POST['valorrecebidodoform']."'", $link);

if (mysql_num_rows($result) == 0) {
echo "<P><FONT SIZE=\"-2\" FACE=\"Verdana,Tahoma,Arial,Helvetica,Sans-serif,sans-serif\">você não tem registro</FONT></P>";
}
if (mysql_num_rows($result) > 0) {
echo "<P><FONT SIZE=\"-2\" FACE=\"Verdana,Tahoma,Arial,Helvetica,Sans-serif,sans-serif\">você tem registro</FONT></P>";
exit;
}
?>

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)