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!
Nenhuma descrição foi enviada.
comentários (0)
suspender
Lista de Respostas:
09/07/2002 11:33pm
(~22 anos atrás)
(~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 !?
$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 !?
10/07/2002 6:03am
(~22 anos atrás)
(~22 anos atrás)
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?
// 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?
11/07/2002 9:01am
(~22 anos atrás)
(~22 anos atrás)
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";
}
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";
}
11/07/2002 12:21pm
(~22 anos atrás)
(~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
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
13/07/2002 9:31pm
(~22 anos atrás)
(~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).
O ideal é controlar duplicidades pelo CPF (Maior confiabilidade) ou nome+nome_da_mae (Menor confiabilidade).
26/09/2002 5:49am
(~22 anos atrás)
(~22 anos atrás)
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).
26/09/2002 5:51am
(~22 anos atrás)
(~22 anos atrás)
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?
30/03/2004 4:41pm
(~20 anos atrás)
(~20 anos atrás)
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
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
03/05/2005 10:30pm
(~19 anos atrás)
(~19 anos atrás)
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;
}
?>
<?
$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;
}
?>