PHP E MYSQL - parte 8

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

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.


Ate mais !! Luzia
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?