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
< ?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");
? >
$query = mysql_query("SELECT * FROM users");
? >
Agora
pela tag label digitamos o texto que queremos ver na tela.
[< label for="">Selecione usuario< /label >
[< 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 >
< 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))
< ?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'] ? >" >
< 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 >
< ?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>
< ?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!";
?>