Ir para conteúdo

POWERED BY:

Arquivado

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

Biel.

impedir UPDATE duplicado

Recommended Posts

Boa noite a todos. Direto ao ponto. Pessoal na linha observacao
se eu mudar joga bola para joga xadrez, a alteração não é feita, visto que joao existe. Agora,
se eu mudar joga bola para joga xadrez e mudar joao para maria a alteração é realizada normalmente, visto que maria ainda não existe no banco de dados.
Pessoal quero fazer qualquer alteração na linha nome ou na linha observacao, mas sem permitir duplicidade na linha nome.
NOTA: O codigo abaixo é para fazer UPDATE e não INSERT
OBS: adicionar indice único(unique) na linha nome para o que eu quero fazer não funciona, visto que a linha nome também está sujeita à alteração.
tabela_aprendiz
id  nome     observacao   
1   joao     joga bola 
2   jose     joga basquete

...

<?php 
$nome = $_GET['nome'];
$sql = mysql_query ("SELECT * FROM tabela_aprendiz WHERE nome = '".$nome."' ");
$comparar_dados = mysql_num_rows($sql);

// se não existe altere
if($comparar_dados == 0 ){	

$SQL = mysql_query ("UPDATE tabela_aprendiz SET id ='".$id."' , nome ='".$nome."' WHERE id = '".$id"' ");

// e exiba a mensagem
echo "alteração realizada com sucesso"; 
}

//se já existe exiba a mensagem
else  {echo "não foi possível fazer alteração. O nome já existe no banco de dados ";}

?>

<form action="" method="post">

<select name="nome" required>
<option selected></option>
<option>joao</option>
<option>jose</option>
<option>maria</option>
</select>
<br>

<textarea name="observacao" >joga xadrez</textarea>
<input type="submit" name="enviar" value="enviar" >
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

. Pessoal na linha observacao

se eu mudar joga bola para joga xadrez, a alteração não é feita, visto que joao existe.

Basicamente você checa se o registro existe ou não...

Se já existir é UPDATE.

Se não existir é Insert

 

Porem

 

 

OBS: adicionar indice único(unique) na linha nome para o que eu quero fazer não funciona, visto que a linha nome também está sujeita à alteração.

Discordo da sua afirmação.

Não veja problema de adicionar UNIQUE na tabela.

Caso o objetivo é não permitir duplicidade.

 

 

 

Agora sobre isso..

 

mas sem permitir duplicidade

Foi amplamente explicado nesse tópico, caso a duvida persista, mantenha o tópico ativo informando o que deu de errado

http://forum.imasters.com.br/topic/550398-update/?p=2197398

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente você checa se o registro existe ou não...

Se já existir é UPDATE.

Se não existir é Insert

 

Porem

Discordo da sua afirmação.

Não veja problema de adicionar UNIQUE na tabela.

Caso o objetivo é não permitir duplicidade.

 

 

 

Agora sobre isso..

 

Foi amplamente explicado nesse tópico, caso a duvida persista, mantenha o tópico ativo informando o que deu de errado

http://forum.imasters.com.br/topic/550398-update/?p=2197398

gabrieldarezzo, mais uma vez obrigado. Vamos lá então: Faz de conta que cliquei em um link e esse link me levou para página alterar.php?id=1 com as seguintes informações sendo exibida, visto que já existe no banco de dados

id  nome     observacao   
1   joao     joga bola 

Agora que estou na página alterar.php?id=1 no textarea decidi fazer qualquer alteração e em seguida clicar no botão alterar. O resultado é que não será possível fazer alteração visto que joao já existe. esse é o problema, se joao já existe no banco de dados não vai permitir fazer alteração no textarea.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tchê, que dificuldade para abstrair questões lógicas...

 

Você não deseja repetir? Beleza, então faça uma consulta pelo nome e com o ID diferente, vamos assumir que você esteja no tal alterar.php?id=1

SELECT * FROM tabela WHERE nome = 'zé das paçocas' AND id != '1'

Pronto, você acabou de impedir a duplicidade... pois se o zé das paçocas já existir em algum registro que não seja o 1, irá retornar uma quantidade de linhas diferente de zero, se o zé das paçocas for o próprio id 1 ou então não exisitr, irá retornar zero linhas..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua explicação fica muito confusa. Até o momento, o que entendi pode ser possível realizar com uso de unique.

 

Só lembrando que, unique keys podem ser compostas. Ou seja, não permitir a duplicidade em um conjunto de campos (ao invés de apenas um).

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.