Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Douglas Fabiano

Atualizar dados

Recommended Posts

Pessoal alguem pode me dar um exemplo de como posso atualizar os dados de um campo em uma mesma página php?

 

Vejam o meu código que faço select em uma página, porem preciso atualizar no botão... mas como faço um update dentro desta mesma página?

 

Aqui parte que busca os dados do banco...

<?php
$id = 1; //Você tem que substituir "1" pelo id da noticia que você quer mostrar as informações.
$sql = mysql_query("SELECT id_noticia, noticia, titulo FROM noticia WHERE id_noticia = $id");
if (!$sql) {
   echo "Erro detectado: ".mysql_error();
   exit;
}

$noticia = mysql_fetch_row($sql);

?>

 

 

Agora a textarea onde eu preciso fazer update.. sempre será a mesma notícia,, porem será alterada de vez em quando.. apenas para fazer update:

 

<textarea name="textarea" cols="50" rows="10"><?php echo $noticia[1];?></textarea>

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim:

 

<?php
$id = 1; //Você tem que substituir "1" pelo id da noticia que você quer mostrar as informações.
$sql = mysql_query("SELECT id_noticia, noticia, titulo FROM noticia WHERE id_noticia = $id");
if (!$sql) {
   echo "Erro detectado: ".mysql_error();
   exit;
}

$noticia = mysql_fetch_row($sql);

?>
<form action="" method="post">

</form>
<?php
if(isset($_POST[""])){//$_POST[""] -> nome do submit ou button

//aqui voce ira pegar por post como se fosse tudo normal em outra pagina, e quando for atualuzar, é so fazer o update

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não deu certo olha como está:

 

<?php
$id = 1; //Você tem que substituir "1" pelo id da noticia que você quer mostrar as informações.
$sql = mysql_query("SELECT id_noticia, noticia, titulo FROM noticia
WHERE id_noticia = $id");
if (!$sql) {
  echo "Erro detectado: ".mysql_error();
  exit;
}
$noticia = mysql_fetch_row($sql);
?>

 

 

Formulário onde será alterado o texto:

 

<textarea name="textarea" cols="50" rows="10"><?php echo
$noticia[1];?></textarea>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opaaa, se eu bem entendi o que você quer deve ser esse o problema..

você quer trazer a noticia dentro de um <textarea></textarea>, depois poder atualizar os dados dele.

 

se fosse o problema é o seguinte.

tem que criar um formulário para envio dos dados para outro arquivo processar.

esse arquivo chamei de alterar.php

<?php
$id = 1; //Você tem que substituir "1" pelo id da noticia que você quer mostrar as informações.
$sql = mysql_query("SELECT id_noticia, noticia, titulo FROM noticia WHERE id_noticia = $id");
if (!$sql) {
   echo "Erro detectado: ".mysql_error();
   exit;
}

$noticia = mysql_fetch_row($sql);

?>
<form action="alterar.php" method="post">
<textarea name="textarea" cols="50" rows="10"><?php echo
$noticia[1];?></textarea>
<input type="hidden" name="id" value="<?php echo $id;?>" />
<br/>
<input type="submit" value="Alterar"/>
</form>

 

--------------

 

alterar.php

bem esse arquivo processa os dados recebidos e faz a atualização.

<?php
//resgata as variaveis
$noticia = $_POST['textarea'];
$idNoticia = $_POST['id'];

//verifica se a variavel noticia esta vazia, se não executa o update
if(!empty($noticia)){
	//condição da query
	$sql = "UPDATE noticia SET noticia='".$noticia."' WHERE id_noticia = '".$idNoticia."'";
	//se for executada com sucesso
	if(mysql_query($sql)){
		$msg = "atualização realizada com sucesso!";
		header("location: pagina_anterior.php?msg='".$msg."'");
	}else{
		$msg = "problema na atualização!";
		header("location: pagina_anterior.php?msg='".$msg."'");
	}
}else{
	$msg = "error ao enviar";
	header("location: pagina_anterior.php?msg='".$msg."'");
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples

$_SERVER['REQUEST_METHOD'];

 

form.php

<?php

  $noticia = ''; // Inicia Variável
  $msg = '';
  if($_SERVER['REQUEST_METHOD'] == "POST") // Se a página está sendo carregada via POST !
  {

    $noticia = $_POST['textarea'];

    include 'conexao.php';

    INSERT INTO TABELA (CAMPO) VALUES ('$campo');
    EXECUTA;
    $msg = "Notícia Cadastrada!";

  }

?>
<html>
<head><title>Teste</title></head>
<body>
<br />
<?php echo $msg; ?>
<br/>
<form method="post" name="frm" action=""> <!-- Action Deixa Vazio -->
Texto <br />
<textarea name="textarea" cols="50" rows="10"><?php echo $noticia; ?></textarea>
</form>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz o seguinte:

 

nesse caso eu colocaria um botao para fazer a ação

exemplo

<?php 
include("connect.php");
?>
<form name="noticia" method="post">
<textarea name="textarea" cols="50" rows="10"><?php echo $noticia[1];?></textarea> 
<input type="submit" name="submit" value="Cadastrar">
</form>
<?php
if(isset($_POST['submit'])==1){
$noticia = $_POST['textarea'];
$sql = mysql_query("insert into noticias(campos) values('$noticia')");
if($sql == true){
echo "noticia cadastrada com sucesso";
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora a atualização deu certo porem está com problema de cabeçalho do php... como posso resolver se eu quiser utilizar html antes do php?

Warning: Cannot modify header information - headers already sent by (output started at c:\alterar.php:1) in c:\alterar.php on line 17

 

Linha 17 alterar.php:

 

  header("location: not.php?msg='".$msg."'");

 

Só para melhor compreenssão, eu preciso apenas direcionar para uma outra página, porem essa outra página eu tenho html antes do <?php ?>...

 

Alguem pode me dar uamdica de como redirecionar que não seja header?

 

Eu ja tentei usar <? ob_end_flush(); ?> e no final da página <? ob_end_flush(); ?> porem não deu certo...

 

Código da página que após confirmação irá direcionar:

 

<?php
       //resgata as variaveis
       $noticia = $_POST['textarea'];
       $idNoticia = $_POST['id'];

       //verifica se a variavel noticia esta vazia, se não executa o update
       if(!empty($noticia)){
               //condição da query
               $sql = "UPDATE noticia SET noticia='".$noticia."' WHERE id_noticia = '".$idNoticia."'";
               //se for executada com sucesso
               if(mysql_query($sql)){
                       $msg = "atualização realizada com sucesso!";
                       header("location: not.php?msg='".$msg."'");
               }else{
                       $msg = "problema na atualização!";
                       header("location: not.php?msg='".$msg."'");
               }
       }else{
               $msg = "error ao enviar";
               header("location: not.php?msg='".$msg."'");
       }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema de redirecionar ainda persiste...

Coloquei mas deu erro na mesma linha:

Warning: Cannot modify header information - headers already sent by (output started at c:\alterar.php:1) in c:\alterar.php on line 18

 

A página onde eu atualizo os dados é essa:

<?php ob_start()?>
<?php
require_once 'conexao_1.php';
require ("ini.php");
$id = 1; //Você tem que substituir "1" pelo id da noticia que você quer mostrar as informações.
$sql = mysql_query("SELECT id_noticia, noticia, titulo FROM noticia WHERE id_noticia = $id");
if (!$sql) {
   echo "Erro detectado: ".mysql_error();
   exit;
}
$noticia = mysql_fetch_row($sql);
?>
<form action="alterar.php" method="post">
<textarea name="textarea" cols="50" rows="10"><?php echo
$noticia[1];?></textarea>
<input type="hidden" name="id" value="<?php echo $id;?>" />
<input type="submit" value="Alterar"/>
</form>
<? ob_end_flush(); ?>

 

 

A página onde é o script para atualizar e voltar a página anterior é essa:

<?php ob_start()?>
<?php 
require_once 'conexao_1.php';
require ("ini.php");
?>
<?php
       //resgata as variaveis
       $noticia = $_POST['textarea'];
       $idNoticia = $_POST['id'];

       //verifica se a variavel noticia esta vazia, se não executa o update
       if(!empty($noticia)){
               //condição da query
               $sql = "UPDATE noticia SET noticia='".$noticia."' WHERE id_noticia = '".$idNoticia."'";
               //se for executada com sucesso
               if(mysql_query($sql)){
                       $msg = "atualização realizada com sucesso!";
                       header("location: not.php?msg='".$msg."'");
               }else{
                       $msg = "problema na atualização!";
                       header("location: not.php?msg='".$msg."'");
               }
       }else{
               $msg = "error ao enviar";
               header("location: not.php?msg='".$msg."'");
       }
?>
<? ob_end_flush(); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

se nao ta direcionando usa o echo e tira o header exemplo

<?php
   $msg = "error ao enviar";
   echo "<script>location.href='not.php?msg=".$msg."'</script>";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

depois que eu alterei me mostra um erro assim:

 

Parse error: parse error, unexpected '&' in c:\alterar.php on line 21

 

Tirei a parte da mensagem do script que estava assim:

<?php
   $msg = "error ao enviar";
   echo "<script>location.href='not.php?msg=".$msg."'</script>";
?>

 

Ficou assim:

echo "<script> location.href='not.php'</script>";

 

Porem não mostra a mensagem "Alterada com sucesso... sabe como dá pora colocar d novo sem o erro de & ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.