segunda-feira, 20 de fevereiro de 2017

UPDATE DE UM REGISTRO

UPDATE DE UM REGISTRO

Atenção: espaços foram inseridos depois do sinal de abertura das tags e no final < > para não ser interpretado pelo blogger.

Quando precisarmos alterar um registro devemos em primeiro lugar localizá-lo, selecioná-lo e depois alterá-lo utilizando o comando sql update.
Vamos imaginar que queiramos alterar os dados do usuário. Mas, a que registro essa alteração afetará? Como não cometer um erro de alterar todos os usuários?
Vamos seguir a ideia do cadastro anterior, onde mencionei que alguém com permissões determinaria se o usuário seria administrador, e/ou aprovar o cadastro do usuário.
Logo precisamos identificar o usuário. Então nesse modelo, após abrir a tag do form, determinar o arquivo que executará a instrução do update, precisamos chamar nossa tabela do banco para selecionar o registro a ser alterado. Para chegar a ter acesso ao banco, anteriormente, ou pode ser agora chamamos o nosso arquivo de conexão do banco, o conecta_banco.php.

< form name="caduser" method="POST" action="../salva/salva_aprova_usuario.PHP" >
< ?PHP
include ("conecta_banco.PHP");
Através de uma variável, nesse modelo chamado query ou outro nome usaremos a função do PHP mais o sql para selecionar a tabela e os registros. Asterisco para todos ou pela WHERE restringimos a condição do registro:
$query = mysql_query("SELECT * FROM users");
? >
Agora pela tag label digitamos o texto que queremos ver na tela.
[< label for="">Selecione usuario< /label > 
Seguimos com a tag do Select, só que em vez do select abrir uma lista predefinida (options), a seleção vai ocorrer com os dados da tabela. Observe que o atributo “name” que vamos nos referir na próxima página sai do select, nesse exemplo ‘id’.
< select name="id" >
< option name="">Selecione...< /option >
Com o “while” faremos uma análise dos dados e se a condição for verdadeira executa o que vier dentro das chaves. Então, While($a ou $um_nome_qualquer igual função mysql_fetch_array ($query)) ajudando para compreender mysql_fetch(busca) array(conjunto)= Temos um conjunto de dados em $query = mysql_query("SELECT * FROM users");.
< ?php while($a = mysql_fetch_array($query))
Se sim, então vamos mostrar. Mostrar o quê? Pelo comando php echo a busca da variável que chamamos de “$a” e a coluna da tabela que queremos passar adiante, para a página que executará o update. Nesse caso [‘id’] id do usuario.
{ ?  >
< option value="< ?
php echo $a['id'] ? >"  >
E ainda o que estará visível no select. Nesse caso por exemplo, mostrar o “id” não ajudaria pois quem é o usuario do id1, id2… difícil saber, então melhor selecionar o usuário pelo seu e-mail por exemplo [‘email’]. Fecha-se o option e o select e a }
< ?PHP echo $a['email'] ?>< /option >
< ?PHP } ?  >
< /select  >
 
Nessa nossa brincadeira vamos alterar também a situação do usuário de inativo para ativo. Digamos que as situações possíveis também não vem de options html e sim de uma tabela do banco chamada de cdsituacao.

< ?PHP
$query = @mysql_query("SELECT * FROM cdsituacao");
? >
< label for="">Selecione situacao< /label>
< select name="situacao" >
< option name="">Selecione...< /option>
< ?PHP while($setor = mysql_fetch_array($query)) { ? >
< option value="">< /option>
< ?PHP } ?>
< /select>

Para misturar possibilidades agora usamos opções de options.
< label>Administrador:< /label>
< select name="admin" >
< option>Sim< /option>
< option selected>Não< /option>

< input type="submit" value="Liberar" />
< input type="button" name="cancela" value="Cancelar" onclick="window.location.href='admin.PHP'"/>
< /form>
Teremos uma tela mais ou menos assim, obviamente conforme o tratamento dado por css a página:

< ?php
include "../conecta_banco.php";
$id=$_POST['id'];
$admin=$_POST['admin'];
$situacao=$_POST['situacao'];
$sql = @mysql_query("UPDATE users SET admin ='$admin', situacao = '$situacao' WHERE id ='$id'");
echo "Cadastro alterado com sucesso!";
?>

Nenhum comentário: