Biel. 9 Denunciar post Postado Junho 28, 2016 Boa noite a todos. Direto ao ponto. Pessoal na linha observação quero alterar joga bola para joga xadrez, não estou conseguindo. NOTA: Pessoal estou fazendo UPDATE ou seja o nome joao e jose já existe no banco de dados juntamente com a observação. Na linha observação quero alterar joga bola para joga xadrez, mas não permite fazer alteração. * Na linha nome não quero alterar o nome joao e nem permitir duplicidade * Quero alterar apenas joga bola para joga xadrez, nada mais! 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"> <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
gabrieldarezzo 255 Denunciar post Postado Junho 28, 2016 Na linha nome não quero alterar o nome joao e nem permitir duplicidade Duplicidade: Você pode dar um Select antes de fazer a Operação... E restringir o campo como UNIQUE garantindo a integridade do Banco. (Exemplo abaixo) Não quero alterar o nome do João: O Mysql não faz nenhuma ação se você não especificar. Veja os exemplos abaixo para tentar entender melhor... Vamos criar uma tabela chamada user: CREATE TABLE user( id int(8) primary key auto_increment ,nome varchar(250) not null unique ,acao varchar(250) ); PS: Repare no unique, ele automaticamente obriga todos os registros serem diferentes uns dos outros (: Definição mais formal: http://dev.mysql.com/doc/refman/5.7/en/constraint-primary-key.html Ou mais didatica com exemplos: http://www.w3schools.com/sql/sql_unique.asp Vamos testar se esta budegas funciona.... INSERT INTO user ( id ,nome ,acao ) VALUES (1, 'Silva', 'VOADORA'); /* OK, 1 row affected (0.01 sec) */ INSERT INTO user (id, nome ,acao ) VALUES (2, 'Silva Sauro', 'VOADORA'); /* OK, 1 row affected (0.01 sec) */ Ok.. agora vamos repetir o 'nome' da tabela user. INSERT INTO user ( id ,nome ,acao ) VALUES (3, 'Silva', 'VOADORA'); /* ERROR 1062 (23000): Duplicate entry 'Silva' for key 'nome' */ Perfeito, o Mysql não deixou duplicar o registro, afinal já existia na coluna 'nome' o valor 'Silva'. Porem seria interessante você fazer esse Select antes de tentar dar o Insert, até para melhorar a experiencia do usuário ao invés de estourar um erro na cara dele. (Que tal usar o Ajax que você aprendeu no ultimo post?!) Novamente. O Mysql não faz nenhuma ação se você não especificar.: Agora vamos alterar a tabela user, registro 2 (Olha lá em cima... era User = Silva Sauro, acao = VOADORA... Vamos dar um Select nela antes de alterar... mysql> select * from user; +----+-------------+---------+ | id | nome | acao | +----+-------------+---------+ | 1 | Silva | VOADORA | | 2 | Silva Sauro | VOADORA | +----+-------------+---------+ 2 rows in set (0.08 sec) Porem ele aprendeu a dar Rasteira: UPDATE user SET acao = 'RASTEIRA' WHERE id = 2; Checando... mysql> select * from user; +----+-------------+----------+ | id | nome | acao | +----+-------------+----------+ | 1 | Silva | VOADORA | | 2 | Silva Sauro | RASTEIRA | +----+-------------+----------+ Repare que não pedi por nenhum momento alteração na coluna nome, logo ela permanece intocada.... A unica coisa que me atentei foi especificar a chave primaria WHERE id = 2; Garantindo que apenas o registro 2 sofresse alteração. (acao = 'RASTEIRA') Compartilhar este post Link para o post Compartilhar em outros sites
ErickCordeiroA 0 Denunciar post Postado Junho 29, 2016 Biel, Bom dia! no código que você postou não tem nada de alteração no campo Observação. mas a logica seria mais ou menos como nosso amigo acima mostrou. UPDATE tabela_aprendiz SET observacao = VARIAVEL OBSERVAÇÃO WHERE id= variavel id ate mais Compartilhar este post Link para o post Compartilhar em outros sites