Diana Madeira Posted April 1, 2017 at 08:13 PM Report #603468 Posted April 1, 2017 at 08:13 PM Boa Noite Estou a criar um formulario de registo e estou quase no fim. para finalizar necessito de ter um código que verique se já existe ou não um usuario com pelo menos o mesmo email. Creio que consegui isso, mas invez de aparecer a messagem de erro que escrevi,aparecer simplesmente uma mensagem a dizer "duplicate entry....". Alguém me que possa ajudar sff? deixo aqui o código: $sql= "INSERT INTO registo (name, surname, email, doornumber, road, postcode, password) VALUES('".$name."','".$surname."', '".$email."', '".$doornumber."', '".$road."', '".$postcode."', '".$password."')"; $result=mysqli_query($conn,$sql); if(!$result){ die (mysqli_error($conn)); } else if (mysqli_affected_rows($conn)==0){ echo "User already exists"; } else { echo '<h3><font color="red">You have successfully registered </font></h3>'; } Obrigado
Humberto Barbosa Posted May 3, 2017 at 02:04 PM Report #603947 Posted May 3, 2017 at 02:04 PM (edited) Olá, primeiramente você precisa fazer a verificação antes de tentar inserir o usuário, você poderia criar uma função assim: /* * Verifica se existe um usuário com esse email * e retorna true caso o usuário ja exista e false caso não */ function temUsuarioComEsseEmail($email) { $sql = mysqli_query("SELECT count(*) as total FROM registro WHERE email = '{$email}'"); $row = mysqli_fetch_assoc($sql); if($row['total'] > 0) { return true; } return false; } o seu código ficaria assim: /* * A lógica é se não tem usuário com esse email * executa o insert */ if(!temUsuarioComEsseEmail($email)) { $sql= "INSERT INTO registo (name, surname, email, doornumber, road, postcode, password) VALUES('".$name."','".$surname."', '".$email."', '".$doornumber."', '".$road."', '".$postcode."', '".$password."')"; $result=mysqli_query($conn,$sql); if(!$result){ die (mysqli_error($conn)); } echo '<h3><font color="red">You have successfully registered </font></h3>'; } Edited May 3, 2017 at 02:06 PM by Humberto Barbosa refatorar código
thedoctorheavy Posted May 3, 2017 at 02:08 PM Report #603948 Posted May 3, 2017 at 02:08 PM No select o melore é indicares as coluna onde queres verificar ex select from user where email=$email
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now