Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

não permitir mais cadastros com mesmas informações

17-07-2007 22:37

como devo fazer para não permirit + de um cadastro com as mesmas informações do BD??

não quero que repita o campo email
e nem o campo RG...

obrigado desde ja amigo
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

não permitir mais cadastros com mesmas informações

17-07-2007 22:44

Tem duas coisas importantes, veja essas linhas abaixo
$conexao = mysql_connect("localhost", "login", "senha") or die(mysql_error()); $db = mysql_select_db("bancodedados"); $selec = "SELECT * FROM suatabela WHERE campo1='' AND campo2=''"; $exec = mysql_query($selec, $conexao) or die(mysql_error()); $total = mysql_num_rows($exec);

Observe a variável $total, ela irá retornar o número de linhas do select.

Você irá passar os valores para consulta no select ( campo1 e campo2 ).

Se os itens já estiverem cadastrados no banco de dados, a variável $total terá o valor 1.

Com base nisso, antes da gravação de dados pode ser colocado o seguinte:
if($total==1) {
... aqui será mostrado um alert informando que não pode haver 2 cadastros
exit;
}

Com isso o código será encerrado antes do insert.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

não permitir mais cadastros com mesmas informações

17-07-2007 23:13

amigo...
eu axo que não deu certo...
fiz cmo vc me falou por msn

colokei o script e o history.back..

eu posso cadastrar varias vezes o msmo email com varios RGS diferente
ou vaaarios emails com o msmo RG...

meu script ta +/- assim
... $sql = "SELECT * FROM $tabela3 WHERE email='$email' AND rg='$rg'"; $exec = mysql_query($sql, $connectar1) or die(mysql_error()); $total = mysql_num_rows($exec); if($total==1) { echo " <script> window.alert('O email $email ou o RG n° $rg já encontra-se(m-se) cadastrado(s) em nosso Banco') history.back(0) </script>"; exit; } else { $gravar = "INSERT into $tabela3 (nome,email,datan,end,cep,rg,fone) VALUES ('$nome','$email','$datan','$end','$cep','$rg','$fone')"; mysql_query($gravar); echo "<font color=red>Seus dados foram gravados com sucesso</font>"; } mysql_close("$connectar1"); } else { echo "<font color=red>Preencha todos os campos</font>"; } } ?>

vlw amigo!!!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

não permitir mais cadastros com mesmas informações

17-07-2007 23:30

O que pode estar acontecendo, é que nos testes que está fazendo, já ter adicionado alguns outros dados na tabela com as mesmas características do cadastro, ou não ter passado os valores corretos em $email e $rg

Tente o if assim
$total!="0"

ou seja, se $total ( cadastros encontrados ) for 1 ( um cadastro ) ou mais, exceto 0, irá mostrar o erro e voltar.

Dá uma organizada no seu if, tipo, usa essa estrutura
<?php
if($campo1=="" || $campo2=="") {
echo "<script>
alert('campos vazios');
history.back(0);
</script>";
exit;
} else {

$sql = "SELECT * FROM $tabela3 WHERE email='$email' AND rg='$rg'";
$exec = mysql_query($sql, $connectar1) or die(mysql_error());
$total = mysql_num_rows($exec);
if($total=="0" || $total=="") {
echo "<script>
alert('dados repetidos');
history.back(0);
</script>";
exit;
} else {
$gravar = "INSERT into.....
} // fim do if $total

} // fim do if verifica campos
?>
0
A melhor hospedagem para o seu site HostGator!
 

não permitir mais cadastros com mesmas informações

18-07-2007 10:23

Você colocou:
$sql = "SELECT * FROM $tabela3 WHERE email='$email' AND rg='$rg'";
Não seria:
$sql = "SELECT * FROM $tabela3 WHERE email='$email' OR rg='$rg'";

Acho que está dando errado pois está para SE os dois campos existirem, como só UM existe, ele deixa passar...acho que é isso...

Flws...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

não permitir mais cadastros com mesmas informações

18-07-2007 16:01

Esse cadastro tem algum upload ou algo em relação a diretório?
se sim, esse erro pode ter sido porque alguma pasta não foi achada.

Realmente o que o rodweb disse está correto, se você não quer permitir um dos campos novamente, usa o OR.
0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

não permitir mais cadastros com mesmas informações

18-07-2007 16:40

Pode ser que você esqueceu de passar os valores com aspas

ERRADO
$valor = $_POST['valor'];
... SELECT .... WHERE campo1=$valor

CERTO
$valor = $_POST['valor'];
... SELECT .... WHERE campo1='$valor'
0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

não permitir mais cadastros com mesmas informações

18-07-2007 16:51

Pode fazer sim, mais o OR substitui isso.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

não permitir mais cadastros com mesmas informações

18-07-2007 23:18

amigo

axo que agora deu certo

usei o $total >= "1"

=)

valeu cara!!!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

não permitir mais cadastros com mesmas informações

19-07-2007 09:28

:)
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado