Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Zaaik

Verificar se usuário já existe no banco de dados

Recommended Posts

Olá, estou com um problema que me está dando muita dor de cabeça, meu código verifica apenas se o e-mail já foi cadastrado, e não verifica o usuario! Sim, ja pesquisei MUITO na internet e nada me ajuda...
O código é:

// Verifica se o usuario e o email existem, se existir resulta em erro
if ( ! empty( $user_id ) ) {
	$erro = 'Usuário ou email já cadastrado';
	$pdo_insere = $conexao_pdo->prepare('UPDATE usuarios SET user=?, user_password=?, user_name=?, user_email=? WHERE user_id=?');
	$pdo_insere->execute( array( $form_usuario,  crypt( $form_senha ), $form_nome, $user_id, $form_email ) );

Vlw galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse seu código não verifica absolutamente nada... a query que valida isto deve vir antes disto dai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse seu código não verifica absolutamente nada... a query que valida isto deve vir antes disto dai...

Pode ajudar a arrumar de um jeito que verifique por favor? Pois esse código ajuda quando alguem digita um e-mail que já está sendo usado.

Compartilhar este post


Link para o post
Compartilhar em outros sites


$email = 'aaaa@aaa.com';

$validacao = $con->prepare("SELECT id FROM tabela WHERE email = :email LIMIT 1");

$validacao ->bindParam(':email ',$email,PDO::PARAM_STR);

$validacao ->execute();

if($validacao->rowCount() == '1'){

//ACHOU ALGUMA COISA NA CONSULTA

}else{

//NÃO ACHOU NADA NA CONSULTA

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
$email = 'aaaa@aaa.com';
$validacao = $con->prepare("SELECT id FROM tabela WHERE email = :email LIMIT 1");
$validacao ->bindParam(':email ',$email,PDO::PARAM_STR);
$validacao ->execute();
if($validacao->rowCount() == '1'){
//ACHOU ALGUMA COISA NA CONSULTA
}else{
//NÃO ACHOU NADA NA CONSULTA
}

Acho que você não entendeu, esse código que estou usando no momento verifica apenas se o E-MAIL existe, eu queria um que verificasse se o USUARIO existe...

 

Aqui está a página de cadastro se quiser testar: http://www.clanrgn.com.br/sistema_login/register/

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Francamente, não entendi *orra nenhuma, qual a sua real dúvida? Como testar duas coisas ao mesmo tempo?

WHERE email = :email OR usuario = :usuario

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu quero que quando uma pessoa vai registrar e coloca um usuário que já existe, retorne a mensagem para ela: Usuário já existe...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a diferença entre o que eu passei #4? Ou consultar o nome de usuário? Nenhuma... é só trocar o nome da coluna, vamos supor que você tenha a necessidade de saber se a cor da cueca do cara já está em uso no sistema, no seu BD você tem uma coluna chamada, cor_da_cueca, então a query ficaria:

$cor = 'rosa';
$validacao = $con->prepare("SELECT id FROM tabela WHERE cor_da_cueca = :cor LIMIT 1");
$validacao ->bindParam(':cor',$cor,PDO::PARAM_STR);
$validacao ->execute();
if($validacao->rowCount() == '1'){
//COR JÁ EM USO
}else{
//NÃO ACHOU NADA NA CONSULTA
}

Agora vamos supor que eu queira o nome do cara, e a coluna se chame nome_do_cara, então:

$nome = 'zé das couves';
$validacao = $con->prepare("SELECT id FROM tabela WHERE nome_do_cara = :nome LIMIT 1");
$validacao ->bindParam(':nome',$nome ,PDO::PARAM_STR);
$validacao ->execute();
if($validacao->rowCount() == '1'){
//NOME JÁ EM USO
}else{
//NÃO ACHOU NADA NA CONSULTA
}

Viu só, é exatamente sempre a mesma coisa... se você quiser validar duas sentenças ao mesmo tempo, em que nenhuma delas por ser verdadeira:

$cor = 'rosa';
$nome = 'zé das couves';
$validacao = $con->prepare("SELECT id FROM tabela WHERE cor_da_cueca = :cor OR nome_do_cara = :nome LIMIT 1");
$validacao ->bindParam(':cor',$cor,PDO::PARAM_STR);
$validacao ->bindParam(':nome',$nome ,PDO::PARAM_STR);
$validacao ->execute();
if($validacao->rowCount() == '1'){
//COR/NOME JÁ EM USO
}else{
//NÃO ACHOU NADA NA CONSULTA
}

Tudo é uma questão de apenas usar a cabeça.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.