PHP E MYSQL - parte 8
Neste artigo faremos o formulário para editar a noticia.
FORMULARIO PARA EDITAR A NOTÍCIA !
Neste artigo criaremos o formulário para editar as noticias.
A tarefa do formulário de edição é inicialmente carregar os dados do registro que se deseja alterar e preencher no formulário estes dados, para que o usuário apenas modifique o que achar necessário e salve novamente, caracterizando a edição. Segue o código do arquivo frmeditar.php:
__________________________________________________________________________
<?php
$conexao = mysql_connect("localhost", "root", "");
$banco = mysql_select_db("noticias");
$codigo = $_GET["codigo"];
$sql = "SELECT *, date_format(datahora,'%d/%m/%Y %H:%i') as data FROM noticias WHERE codigo = $codigo";
$dados = mysql_query($sql);
$noticia = mysql_fetch_array($dados);
?>
<html>
<head>
<title>Editar noticia</title>
<script language="JavaScript">
function validar()
{
if (document.editar.titulo.value == "")
{
alert('Titulo nao esta preenchido');
document.editar.titulo.focus();
return false;
}
if (document.editar.conteudo.value == "")
{
alert('Texto nao esta preenchido');
document.editar.conteudo.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<h2>Editar notícia</h2>
<form name="editar" method="POST" action="editar.php" onsubmit="return validar()">
Titulo: <input type="text" name="titulo" maxlenght="100" value="<?php echo $noticia["titulo"]; ?>">
<br>
Data: <input type="text" name="data" maxlength="10" value="<?php echo $noticia["data"]; ?>">
<br>
Conteudo: <br>
<textarea name="conteudo" rows="5" cols="50"><?php echo $noticia["conteudo"]; ?></textarea>
<br>
<input type="submit" value="Enviar">
<input type="hidden" name="codigo" value="<?php echo $noticia["codigo"];?>">
</form>
</body>
</html>
__________________________________________________________________________
ANALISANDO O CÓDIGO
O arquivo frmeditar.php é chamado pelo link que esta na listagem das noticias na página index.php. Toda vez que você clicar neste link o mesmo direciona para a pagina frmeditar passando como parâmetro pela url o código da noticia que você clicou.
Link na pagina índex.php :
<td><a href="frmeditar.php?codigo=<?php echo $dados["codigo"];?>">Editar</a></td>
Feito isso a pagina frmeditar para qual estamos direcionando o link deve extrair da url o código da noticia.
$codigo = $_GET["codigo"]; //FUNCAO GET DO PHP
Logo devemos consultar no banco de dados qual noticia clicamos de acordo com o código extraído.
$sql = "SELECT *, date_format(datahora,'%d/%m/%Y %H:%i') as data FROM noticias WHERE codigo = $codigo";
$dados = mysql_query($sql);
$noticia = mysql_fetch_array($dados);//como retorna apenas um registro nao é necessário a utilização do while.
Através do echo podemos imprimir os valores na propriedade value dos campos no formulário. A variável $noticia possui o retorno da consulta ao banco o registro da noticia que clicamos para editar.
EXEMPLO:
_________________________________________________________________
Titulo: <input type="text" name="titulo" maxlenght="100" value="<?php echo $noticia["titulo"]; ?>">
_________________________________________________________________
Depois que todos os campos exibiram seus devidos valores você pode editar. Ate agora ainda não estamos fazendo o UPDATE ou seja a atualização do que você editar nos campos, isso vai ser feito em outro arquivo chamado editar.php que é o action do form editar.
Perceba que ao final do formulário temos um campo hidden.
______________________________________________________
<input
type="hidden" name="codigo" value="<?php echo
$noticia["codigo"];?>">
___________________________________________________________________
O campo hidden não aparece para o usuário já que este campo não deve ser alterado. Mas quando enviar os dados para o action do form o valor value="<?php echo $noticia["codigo"];?> também ira por POST.
Isto acontece pois na edição de um registro precisamos sempre informar o código a ser alterado (chave primária) pois senão a atualização acontece para TODOS os registros. Logo se diz que a cláusula WHERE é de suma importância na atualização.
Na próximo artigo faremos o editar.php no qual ira atualizar a noticia no banco de dados através do UPDATE.

Space do autor

Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL

1
0
Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!