Ir para conteúdo
Fórum Script Brasil
  • 0

Alterar um registro especifico [UPDATE]


Guest Thiago Silva

Pergunta

Guest Thiago Silva

Olá,

Eu tenho um sistema de cadastro em PHP/MySQL, que faz login de usuario, login de administrador, cadastra, exclui e altera usuario, porem quando eu vou alterar um formulario o meu UPDATE, ele altera todos os registro do formulario.

Como eu faco para alterar apenas um registro especifico sendo que os "inalterados" permanecam na forma original, ou seja, sem serem alterados?

Obs: Eu tenho um script "alterar.php" que quando altera chama outro script "alterar_db.php",

é no script "alterar_db.php" que esta o meu UPDATE.

Qualquer coisa colo meu script aqui para voces verem, mas eu só queria a ideia da coisa mesmo.

Abracos,

Thiago =D

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

E para saber que registro alterar você pega o ID dele?

Ou o nome de usuário?

É só fazer uma condição na query, vamos supor que você pegue o registro pelo id:

$consulta = mysql_query("UPDATE `tabela` SET `senha` = '$senha' WHERE `id` = '$id'");

Ele modificará somente o id selecionado pelo WHERE.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Thiago --

Olha, a query esta sendo feita assim:

$sql = "update tabela_usuarios set nome_usuario='$novo_nome_usuario', usuario='$novo_usuario', senha=md5('$novo_senha') where nome_usuario='$nome_usuario'";

Quando eu altero ele altera todos os campos, como eu faco para alterar apenas um registro dentro de um formulario que vai conter todos esses campos?

Abracos

Link para o comentário
Compartilhar em outros sites

  • 0

O que eu quero exatamente é o seguinte, acho que voce não entendeu muito bem, ou eu que estou viajando mesmo, me corrija se necessario ok? Sou novo em PHP, então estou apenas engatinhando ...!

O script onde esta sendo feito o UPDATE é este(apenas o mais importante):

//alterar_db.php

$nome_usuario=$_GET["nome_usuario"];

$novo_nome_usuario=$_POST["novo_nome_usuario"];

$usuario=$_GET["usuario"];

$novo_usuario=$_POST["novo_usuario"];

$senha=$_GET["senha"];

$novo_senha=$_POST["novo_senha"];

$sql = "update tabela_usuarios set nome_usuario='$novo_nome_usuario', usuario='$novo_usuario', senha=md5('$novo_senha') where nome_usuario='$nome_usuario'";

******************************************************************************

//alterar.php (script que chama o script acima)

Este script apenas da um ECHO em todos os campos que eu possuo(os quais desejo alterar), e quando eu clico em alterar, ele chama "alterar_db.php" e faz o UPDATE listado acima, a minha duvida é, como eu faco um UPDATE na minha tabela em um registro especifico:

Ex: Quando eu quiser alterar apenas a senha:

$sql = update tabela_usuarios set senha=md5('$novo_senha') where senha='$senha';

ou

Ex: Quando eu quiser alterar apenas nome de usuario:

$sql = update tabela_usuarios set nome_usuario='$novo_nome_usuario) where nome_usuario='$usuario';

Sem ficar forcando o banco a fazer UPDATE em campo que não sera alterado, ou seja, para que meu banco não precise ficar reescrevendo os dados que não serao alterados?

Abracos, obrigado.

thiago

Link para o comentário
Compartilhar em outros sites

  • 0

Você mesmo acabou escrevendo o modo de fazer! :P

Olha só, quando você quiser alterar somente o usuário:

$sql = update tabela_usuarios set nome_usuario='$novo_nome_usuario where nome_usuario='$usuario';
Quando quiser alterar somente a senha:
$sql = update tabela_usuarios set senha=md5('$novo_senha') where senha='$senha';

Fazendo dessa maneira o MySQL nem irá mexer nos outros dados, somente no que você quer alterar!

Se eu entendi bem o que você precisa, é só fazer isso mesmo.

Se eu ainda não entendi, me desculpe, podemos tentar novamente. :wacko:

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...