Ir para conteúdo

POWERED BY:

Arquivado

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

Biel.

impedir de duplicar a informação no bd quando for atualizar

Recommended Posts

Boa tarde a todos. Direto ao ponto. Pessoal o EX 1 abaixo cadastra e impede cadastro duplicado na tabela_carros
Gostaria de saber como impedir que uma informação se repita com UPDATE no EX 2
já cadastrei gol e fiat na tabela_carros
id  carros
1   gol
2   fiat

EX 1  - pagina_1.php
<?php  	
$id     = $_POST['id']; 
$carros = $_POST['carros']; 

$select = mysql_query ("SELECT * FROM tabela_carros ");

$percorre = mysql_num_rows($select);
if($percorre == 0){

$insert = mysql_query ("INSERT INTO tabela_carros (carros)VALUES('".$carros."') ");

echo "cadastro realizada com sucesso";
}

else {	
echo "Não foi possivel fazer o cadastro. <br />O carro que você quer cadastrar já foi cadastrado";
}

?>

<select name="carros" >
<option selected></option>
<option>gol</option>
<option>fiat</option>
<option>palio</option>
<option>corsa</option>
</select>

...

EX 2  - pagina_2.php
<?php  	
$id     = $_POST['id']; 
$carros = $_POST['carros']; 

$sql_eee = mysql_query ("UPDATE tabela_carros SET 
						id ='".$id."' , 
						carros ='".$carros."' 
						WHERE id = '".$id."' "); 

echo "alteracao realizada com sucesso";

echo "Não foi possivel fazer alteracao. <br />nao pode ter carros iguais na mesma tabela";

?>

<select name="carros" >
<option selected></option>
<option>gol</option>
<option>fiat</option>
<option>palio</option>
<option>corsa</option>
</select>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué da select antes do INSERT com o registro a inserir caso o retorno seja verdadeiro você para a execução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué da select antes do INSERT com o registro a inserir caso o retorno seja verdadeiro você para a execução.

gabrieldarezzo, obrigado por postar. não é INSERT é UPDATE

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que ele quis dizer é que você deve verificar o dado antes de realizar a próxima ação.

 

Além do que isto:

$sql_eee = mysql_query ("UPDATE tabela_carros SET
                        id ='".$id."' ,
                        carros ='".$carros."'
                        WHERE id = '".$id."' "); 

Poderia ser apenas isto:

$sql_eee = mysql_query ("UPDATE tabela_carros SET
                        carros ='".$carros."'
                        WHERE id = '".$id."' "); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

O que ele quis dizer é que você deve verificar o dado antes de realizar a próxima ação.

 

Além do que isto:

$sql_eee = mysql_query ("UPDATE tabela_carros SET
                        id ='".$id."' ,
                        carros ='".$carros."'
                        WHERE id = '".$id."' "); 

Poderia ser apenas isto:

$sql_eee = mysql_query ("UPDATE tabela_carros SET
                        carros ='".$carros."'
                        WHERE id = '".$id."' "); 

Eserra obrigado por postar. É exatamente isso que fiz com INSERT conforme postei . ou seja o EX 1 verifica se um dado já existe.

Se o dado não existe exibe a mensagem cadastro realizada com sucesso

se o dado já existe exibe a mensagem O carro que você quer cadastrar já foi cadastrado

 

Quero fazer a mesma coisa com UPDATE ou seja verificar se o dado já existe no bd

 

Se o dado não existe exibe a mensagem alteracao realizada com sucesso

se o dado já existe exibe a mensagem Não foi possivel fazer alteracao. nao pode ter carros iguais na mesma tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eserra obrigado por postar. É exatamente isso que fiz com INSERT conforme postei . ou seja o EX 1 verifica se um dado já existe.

Se o dado não existe exibe a mensagem cadastro realizada com sucesso

se o dado já existe exibe a mensagem O carro que você quer cadastrar já foi cadastrado

 

Quero fazer a mesma coisa com UPDATE ou seja verificar se o dado já existe no bd

 

Se o dado não existe exibe a mensagem alteracao realizada com sucesso

se o dado já existe exibe a mensagem Não foi possivel fazer alteracao. nao pode ter carros iguais na mesma tabela

Primeiro que a sua verificação não verifica nada...

$select = mysql_query ("SELECT * FROM tabela_carros ");

$percorre = mysql_num_rows($select);
if($percorre == 0){

Como a verificação deveria ser:

$select = mysql_query ("SELECT * FROM tabela_carros WHERE carros = '$carros' ");

$percorre = mysql_num_rows($select);
if($percorre == 0){

Pronto, no caso do update...

$select = mysql_query ("SELECT * FROM tabela_carros WHERE carros = '$carros' AND id != '$id'");

$percorre = mysql_num_rows($select);
if($percorre == 0){

Pronto... só questão de: pensar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquise também sobre chaves primárias e únicas (primary & unique keys)

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.