Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, estou fazendo um script para cadastrar e-mails em um site, todavia preciso que ele verifique se ja exista o e-mail para então sim, efetuar um novo registro.
o script está assim.
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST["ID"];
$nome = $_POST["NOME_N"];
$email = $_POST["EMAIL_N"];
if(file_exists("paginas/init.php")) {
require "paginas/init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
Abre_Conexao();
mysql_query("SELECT ID, NOME_N, EMAIL_N FROM newsletter");
if ('EMAIL_N' == $email){
echo "Esse email ja existe em nossa Base de Dados";
}
else{
if(@mysql_query("INSERT INTO newsletter VALUES ( NULL , '$nome', '$email')")) {
if(mysql_affected_rows() == 1){
echo "<h4><center>$nome o seu cadastro foi efetuado com sucesso</center></h4>";
} echo $erros[mysql_errno()];
exit;
} else {
echo "Erro nao foi possivel efetuar o cadastro";
exit;
}
@mysql_close();
}
}
}
?>
Aqui é deveria ser feita a verificação
mysql_query("SELECT ID, NOME_N, EMAIL_N FROM newsletter");
if ('EMAIL_N' == $email){
echo "Esse email ja existe em nossa Base de Dados";
}
else{
So que ele vai direto pro else não está verificando.
Tá bem estranha a tua consulta. Faz uma consulta usando WHERE email é igual ao e-mail que você tá querendo cadastrar. Veja quantos resultados voltaram com o mysql_num_rows. Se tiver algum resultado, significa que já está cadastrado.
Mais ou menos assim.
$sql = 'SELECT ID FROM newsletter WHERE EMAIL_N = \''.$email.'\'';
$qry = mysql_query($sql) or die(mysql_error());
$qtde = mysql_num_rows($qry);
if ($qtde > 0) echo 'E-mail já cadastrado.';
else echo 'E-mail ainda não foi cadastrado';
Carlos Eduardo
Simles assim ? rss
Valeu mesmo cara, funcionou uma beleza !!!!!!
uma dica: é mais rápido usar COUNT(), pois somente um valor é retornado, sem buscar os dados em si. Mais leve e mais rápido.
Questão de otimização.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
você pode criar uma chave única. Nesse caso, a inserção retornaria o erro 1062 ao tentar inserir uma chave duplicada.
Será retornado o campo "total". Se for maior que zero, já existe esse e-mail cadastrado.