Boa tarde,criei um forum que mostra todos os posts do utilizador com sessao iniciada. cada post tem um "editar" correspondente ao id da publicação o qual posso editar esse mesmo post num form fazendo um update (em que se vier um id pelo url, mostra o botao "editar")... .
Caso eu queira inserir um novo post, basta clicar num botao para criar um novo post, o qual me mela para o mesmo form,onde verifico se não vier nu«enhum id pela url, os campos desse form ficam vazios, a espera de serem preenchidos para eu fazer um insert......porem QUANDO TENTO FAZER O INSERT, NENHUM NOVO POST É INSERIDO.....SOMENTE O UPDATE FUNCIONA......alguém PODE VER SE O MEU SCRIPT DE INSERT TEM ALGUMA FALHA POR FAVOR?
<?php include 'base_dados/ligacao_bd.php';
session_start();
//se não houver nenhuma sessão... if(!isset($_SESSION['nome_utilizador'])) { include 'cabecalho.php'; echo '<div class="erro"> não tem autorização para ver esta pagina. <br> <br> <a href="index.php">retroceder</a> </div>'; include 'rodape.php';
exit;//muito importante este EXIT; pois já não deixa executar nada mais abaixo } //-----------------------------------------------------------------------
include 'cabecalho.php';
//apresentar o utilizador logado $mostrar_utilizador = $ligacao->query("SELECT * FROM utilizadores WHERE nome_utilizador = '".$_SESSION['nome_utilizador']."' "); $mostrar = mysqli_fetch_array($mostrar_utilizador);
echo '<div class="dados_utilizador"> <img src="imagens/avatares/'.$mostrar['avatar'].'" title="foto de perfil de '.$_SESSION['nome_utilizador'].'" ><span>'.$_SESSION['nome_utilizador'].'</span> | <a href="logout.php">sair</a> </div> <hr>';
if(isset($_GET['id_publicacao']))//se vier um id pela url... { //vai buscar os dados da publicação á base dados correspondente a esse id_publicacao e mostra-os! $buscar_dados = $ligacao->query("SELECT * FROM publicacoes WHERE id_publicacao = ".$id_publicacao." "); $mostrar = mysqli_fetch_array($buscar_dados);
Pergunta
jnf
Boa tarde,criei um forum que mostra todos os posts do utilizador com sessao iniciada.
cada post tem um "editar" correspondente ao id da publicação o qual posso editar esse mesmo post num form fazendo um update (em que se vier um id pelo url, mostra o botao "editar")... .
Caso eu queira inserir um novo post, basta clicar num botao para criar um novo post, o qual me mela para o mesmo form,onde verifico se não vier nu«enhum id pela url, os campos desse form ficam vazios, a espera de serem preenchidos para eu fazer um insert......porem QUANDO TENTO FAZER O INSERT, NENHUM NOVO POST É INSERIDO.....SOMENTE O UPDATE FUNCIONA......alguém PODE VER SE O MEU SCRIPT DE INSERT TEM ALGUMA FALHA POR FAVOR?
<?php
include 'base_dados/ligacao_bd.php';
session_start();
//se não houver nenhuma sessão...
if(!isset($_SESSION['nome_utilizador']))
{
include 'cabecalho.php';
echo '<div class="erro">
não tem autorização para ver esta pagina. <br> <br>
<a href="index.php">retroceder</a>
</div>';
include 'rodape.php';
exit;//muito importante este EXIT; pois já não deixa executar nada mais abaixo
}
//-----------------------------------------------------------------------
include 'cabecalho.php';
//apresentar o utilizador logado
$mostrar_utilizador = $ligacao->query("SELECT * FROM utilizadores WHERE nome_utilizador = '".$_SESSION['nome_utilizador']."' ");
$mostrar = mysqli_fetch_array($mostrar_utilizador);
echo '<div class="dados_utilizador">
<img src="imagens/avatares/'.$mostrar['avatar'].'" title="foto de perfil de '.$_SESSION['nome_utilizador'].'" ><span>'.$_SESSION['nome_utilizador'].'</span> | <a href="logout.php">sair</a>
</div> <hr>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Editor publicação</title>
</head>
<body>
<?php
$id_publicacao = @$_GET['id_publicacao'];
$titulo = "";
$mensagem = "";
if(isset($_GET['id_publicacao']))//se vier um id pela url...
{
//vai buscar os dados da publicação á base dados correspondente a esse id_publicacao e mostra-os!
$buscar_dados = $ligacao->query("SELECT * FROM publicacoes WHERE id_publicacao = ".$id_publicacao." ");
$mostrar = mysqli_fetch_array($buscar_dados);
$titulo = $mostrar['titulo'];
$mensagem = $mostrar['mensagem'];
}
elseif (isset($_POST['botao_editar']))
{
$alterar = $ligacao->query("UPDATE publicacoes SET titulo = '".$_REQUEST['text_titulo']."' , mensagem = '".$_REQUEST['text_mensagem']."' WHERE id_publicacao = '".$id_publicacao."' ")or die(mysql_error());
}
elseif (isset($_POST['botao_gravar']))
{
$titulo = $_POST['text_titulo'];
$mensagem = $_POST['text_mensagem'];
$inserir = $ligacao->query("INSERT INTO publicacoes(id_utilizador,titulo,mensagem,data) VALUES('".$_SESSION['id_utilizador']."','$titulo','$mensagem','NOW()' ) WHERE id_utilizador = '".$_SESSION['id_utilizador']."' ")or die(mysql_error());
}
?>
<!--formulario para criar/editar publicação-->
<form class="form_publicacao" method="post" action="?">
<h3>publicação</h3> <hr /> <br />
<label for="title">Titulo</label> <br />
<input type="text" id="title" name="text_titulo" size="50" value="<?php echo $titulo ?>" /> <br /> <br />
<label for="msg">Mensagem</label> <br />
<textarea id="msg" name="text_mensagem" rows="10" cols="97"><?php echo $mensagem ?></textarea> <br /> <br />
<input type="hidden" name="id_utilizador" value="<?php echo $_SESSION['id_utilizador'] ?>" />
<input type="hidden" name="id_publicacao" value="<?php echo $id_publicacao ?>" />
<?php
if(isset($_GET['id_publicacao']))
{
?>
<input type="submit" name="botao_editar" value="editar" />
<?php
}
else
{
?>
<input type="submit" name="botao_gravar" value="gravar" />
<?php
}
?>
</form>
</body>
</html>
BASE DADOS (PUBLICACOES):
ID_PUBLICACAO
ID_UTILIZADOR
TITULO
MENSAGEM
DATA
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.