Jump to content
Biel.

impedir cadastro duplicado

Recommended Posts

Olá pessoal.  Como impedir dados duplicados em multiplos cadastros? Sempre que existir no item do select o mesmo nome que já consta na tab_aprendiz, impedir o cadastro por completo. joao por exemplo já existe na tab_aprendiz e vai ser cadastrado novamente. Alguém tem alguma idéia de como impedir o cadastro ? Obrigado !

tab_aprendiz
id   nomes
1   joao
2   pedro
3   lucas

...

<?php
$phpSelf = $_SERVER['PHP_SELF'];
if (isset($_POST["enviar"])){  
for($i=0; $i<3; $i++): 
@$nome	= $_POST['nome'][$i];
endfor;

$sqlRY = mysqli_query($KJZcon, "SELECT  nome FROM  tab_aprendiz  WHERE  nome	= '".$nome."'  ");
$compararDados = mysqli_num_rows($sqlRY);

if($compararDados == 0){
  
for($i=0; $i<3; $i++): 
@$nome	= $_POST['nome'][$i];

$sql_ZWX = mysqli_query($KJZcon, "INSERT INTO tab_aprendiz(nome)VALUES('".$nome."')");  

print "Cadastro realizado com sucesso";
}
else{print "não cadastrou";}

endfor;
}
?>


 

Share this post


Link to post
Share on other sites

A coluna nome deve possuir, lá no seu banco de dados, um índice UNIQUE, exigindo assim que os dados da coluna sejam únicos.

 

Você pode criar o índice na hora de criar a tabela (CREATE TABLE) ou adicionar ele depois com ALTER TABLE.

Veja exemplos: https://www.w3schools.com/sql/sql_unique.asp

 

A correta modelagem do banco é essencial (como dito acima), mas se quiser prover uma camada adicional de verificação e exibição de erros a lógica seria essa:

 

1 - Faça um SELECT com WHERE nome = $nome_desejado.

2 - Se encontrar o registro no banco, exiba um erro e interrompa, pois já existe.

3 - Se não encontrou, prossiga normalmente com o INSERT.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Biel.
      Olá, Pessoal. Como selecionar vários ítens do select multiple, sem pressionar a tecla Ctrl, só marcando com o Mouse ?
      <select name="aprendendo" multiple size="5" > <option value="aaa" id="pular">aaa</option> <option value="bbb" id="jogar">bbb</option> <option value="ccc" id="brincar">ccc</option> <option value="ddd" id="trabalhar">ddd</option> <option value="eee" id="andar">eee</option> </select> ...
      <script> function myFunction() { var x = document.getElementById("aprendiz").value; } </script>  
    • By Biel.
      O código abaixo ao marcar checkbox1 fica selected item1. Até aqui tudo ok.  O problema é que ao desmarcar checkbox1  o item1 continua  selected . Como remover selected do item1 ao desmarcar checkbox1? Obrigado !
      <div style="float:left; margin-right:20px;"> checkbox1<input type="checkbox" id="aprendiz" onclick="myFunctionA();" value="aaa"><br> checkbox2<input type="checkbox" id="aluno" onclick="myFunctionB()" value="bbb"><br> </div> <div style="float:left;"> <select multiple size="2" > <option id="item1">item1</option> <option id="item2">item2</option> </select> </div> ...
      <script> function myFunctionA(){ var x = document.getElementById("aprendiz").value; if(x=='aaa'){ document.getElementById("item1").selected=true; } } </script> <script> function myFunctionB(){ var x = document.getElementById("aluno").value; if(x=='bbb'){ document.getElementById("item2").selected=true; } } </script>
       
    • By Biel.
      Olá pessoal . Como alterar dois ou mais registros na mesma tabela? Operador IN para deletar funcionou normalmente, mas para alterar não estou conseguindo fazer. O que está faltando?
      ...
      a tab_aprendiz está assim id nome codigo 1 joao 555 2 joao 555 3 maria 666 4 maria 666 Ao dar submit gostaria que id 1 e id 2 a linha nome foi alterada para silva ou santos . Obrigado ! ...
      <?php if(isset($_POST["enviar"])){?> <?php @$id = $_POST['id']; @$codigo = $_POST['codigo']; @$nome = $_POST['nome']; ?> <?php //$sql = mysqli_query($KJZcon, "DELETE FROM tab_aprendiz WHERE dkr_id IN (105,106) ");?> <?php $sqlVF = mysqli_query($KJZcon, "SELECT * FROM tab_aprendiz WHERE id IN (1,2) "); ?> <?php $sqlVF = mysqli_query($KJZcon, "UPDATE tab_aprendiz SET id = '".$id."' , nome = '".$nome."' , codigo = '".$codigo."' WHERE id IN ('1','2') "); ?> <?php // WHERE id = '".$id."' AND id IN (1,2) ");?> <?php echo "<h1>veja se id 1 e id 2 a linha nome foi alterada para silva ou santos</h1>"; ?> <?php } ?> <form action="<?php echo $phpSelf; ?>" method="post" > codigo <input type="text" name="codigo" value="555"> <hr> id <select name="id" multiple size="2"> <option value="1" selected>id1</option> <option value="2" selected>id2</option> </select> <hr> silva <input type="radio" name="nome" value="silva"> <hr> santos <input type="radio" name="nome" value="santos"> <hr> <input type="submit" name="enviar" value="Salvar"> </form>  
    • By Biel.
      Olá pessoal. O código abaixo lista todos os dados que estão na linha roupas. Como faço para listar somente os dados com seis caracteres pra cima, ou seja,  (camisa, jaqueta e bermuda) ? Obrigado.
      tab_Aprendiz id  roupas 1  calça 2  bermuda 3  camisa 4  jaqueta 5  short 6  blusa ...
      <?php $sql  = mysqli_query($con, "SELECT roupas  FROM  tab_aprendiz");  while($linha = mysqli_fetch_array($sql)){     @$roupas = $linha ['roupas'];     echo $roupas .'<br>';     }  ?>
       
    • By Biel.
      Olá pessoal. Direto ao ponto. O código abaixo captura o texto digitado no campo textarea. Até aqui tudo ok.  Podemos ver o resultado teclando f12 e depois ir na aba elements
      Como capturar tag br ao teclar enter e exibindo na aba elements este resultado:
      texto qualquer  <br>
      vamos com calma  <br>
      tranquilidade sempre  <br>
      <textarea name="textodigitado" id="textodigitado" onkeydown='eventoDoTeclado()' ></textarea> <script> //var capturar = ""; function eventoDoTeclado () { var capturar = document.getElementById('textodigitado').value; document.getElementById('textodigitado').innerHTML = capturar; //var br = document.createElement("<br>"); //var br = document.createElement('br'); } </script>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.