Ir para conteúdo

POWERED BY:

Arquivado

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

Raffael Chacon

[Resolvido] Mural de Recados

Recommended Posts

Bom dia pessoal, estou aqui com uma duvida. Estou fazendo um "mural de recados" onde uns usuário podem postar e apagar mensagens e os outros só podem visualizar, para isso tenho 4 paginas, uma exibe.php, outra cadastro.php, exibeadmin.php e a index.php (para os usuários que podem postar e apagar, ela une as duas outras paginas, exibeadmin.php e cadastro.php). Consegui montar tudo mas não estou conseguindo pensar em nada para que o usuário possa apagar as mensagens, segue o codigo da pagina exibeadmin.php:

 

//Selecionando a ultima msg postada
	$sql = mysql_query("SELECT MAX(ID_FEED) FROM feed"); 
	while($sql = mysql_fetch_array($sql)){ 
			//Atribui Os valores dos Campos as Variáveis
			$maxid = $sql["MAX(ID_FEED)"];
			break;
	}
	while($total > 0){
	$titulo = "";
	$conteudo = "";
	$data = "";
	$setor = "";
	$link = "";
	$autor = "";
	$id = "";
	$sql = mysql_query("SELECT * FROM feed WHERE id_feed = '$maxid'");
	while($sql = mysql_fetch_array($sql)){ 
			//Atribui Os valores dos Campos as Variáveis
			$data = $sql["data"];
			$data = explode('-',$data);	
			$titulo = $sql["titulo"];
			$conteudo = $sql["conteudo"];
			$autor = $sql["autor"];
			$setor = $sql["setor"];
			$id = $sql["id_feed"];
			$link = $sql["link"];
			$link = "\" $link \"";		
			break;
	}
	$total = $total - 1;
	$maxid = $maxid - 1;
//Aqui adiciona ao lado da msg o botão excluir que chama a pagina excluir.php, mas eu não sei como eu faço para saber qual msg deve ser apagada.
	echo "<form name=\"form1\" method=\"post\" action=\"/riosdor/Feed/exluir.php\">";
 		echo "<label>";
 		echo "<div align=\"right\">";
  		echo "<input type=\"submit\" id=\"exluir\" name=\"Submit\" value=\"Exluir\">";
 		echo "</div>";
	echo "</label>";
	echo "</form>";
               //Aqui exibe as mensagens
	// Exibe o titulo do recado postado pelo usuário
	echo "Titulo:<a href=$link target=\"_blank\"><strong>$titulo</a>";
	echo "</strong>"; 
	echo "<br />";
	// Exibe o nome do usuário e a data da postagem do recado já no formato brasileiro 
	echo "Autor: <strong>$autor em $data[2]/$data[1]/$data[0]"; 		
	echo "<br />"; 
	echo "Setor: <strong>$setor";
	echo "<br />";
	// Exibe o recado do usuário.
	echo "Recado:$conteudo<hr />";  
	// Fim dos registros 
	}
}
?>

Se alguem puder ajudar! Agradeço muito...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal, estou aqui com uma duvida. Estou fazendo um "mural de recados" onde uns usuário podem postar e apagar mensagens e os outros só podem visualizar, para isso tenho 4 paginas, uma exibe.php, outra cadastro.php, exibeadmin.php e a index.php (para os usuários que podem postar e apagar, ela une as duas outras paginas, exibeadmin.php e cadastro.php). Consegui montar tudo mas não estou conseguindo pensar em nada para que o usuário possa apagar as mensagens, segue o codigo da pagina exibeadmin.php:

 

//Selecionando a ultima msg postada
	$sql = mysql_query("SELECT MAX(ID_FEED) FROM feed"); 
	while($sql = mysql_fetch_array($sql)){ 
			//Atribui Os valores dos Campos as Variáveis
			$maxid = $sql["MAX(ID_FEED)"];
			break;
	}
	while($total > 0){
	$titulo = "";
	$conteudo = "";
	$data = "";
	$setor = "";
	$link = "";
	$autor = "";
	$id = "";
	$sql = mysql_query("SELECT * FROM feed WHERE id_feed = '$maxid'");
	while($sql = mysql_fetch_array($sql)){ 
			//Atribui Os valores dos Campos as Variáveis
			$data = $sql["data"];
			$data = explode('-',$data);	
			$titulo = $sql["titulo"];
			$conteudo = $sql["conteudo"];
			$autor = $sql["autor"];
			$setor = $sql["setor"];
			$id = $sql["id_feed"];
			$link = $sql["link"];
			$link = "\" $link \"";		
			break;
	}
	$total = $total - 1;
	$maxid = $maxid - 1;
//Aqui adiciona ao lado da msg o botão excluir que chama a pagina excluir.php, mas eu não sei como eu faço para saber qual msg deve ser apagada.
	echo "<form name=\"form1\" method=\"post\" action=\"/riosdor/Feed/exluir.php\">";
 		echo "<label>";
 		echo "<div align=\"right\">";
  		echo "<input type=\"submit\" id=\"exluir\" name=\"Submit\" value=\"Exluir\">";
 		echo "</div>";
	echo "</label>";
	echo "</form>";
               //Aqui exibe as mensagens
	// Exibe o titulo do recado postado pelo usuário
	echo "Titulo:<a href=$link target=\"_blank\"><strong>$titulo</a>";
	echo "</strong>"; 
	echo "<br />";
	// Exibe o nome do usuário e a data da postagem do recado já no formato brasileiro 
	echo "Autor: <strong>$autor em $data[2]/$data[1]/$data[0]"; 		
	echo "<br />"; 
	echo "Setor: <strong>$setor";
	echo "<br />";
	// Exibe o recado do usuário.
	echo "Recado:$conteudo<hr />";  
	// Fim dos registros 
	}
}
?>

Se alguem puder ajudar! Agradeço muito...

 

 

ai cara tenta assim e v se funfa eu estou considerando q este delete esta dentro do select do mysql:

 

<a href="excluir.php?op=del&id=<?=$id;?>">Deletar</a>

<?php
if(isset($_GET['op'] == 'del'){
$id = $_GET["id"];

$query = mysql_query("DELETE FROM sua_tabela WHERE id = $id")or die(mysql_error());
$num = mysql_affected_rows();

if($num>0){
header ("location:sua_pagina_de_redirecionamento.php");
}
}
?>

v ai se vai dar certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo não entendi muito bem seu codigo, ele está dando erro sempre na linha

if(isset($_GET['op'] == 'del')){
erro: Parse error: parse error, expecting `','' or `')'' in C:\wamp\www\riosdor\Feed\excluir.php on line 10

 

Eu pus isso na minha pagina que exibe.php, apareceu a palavra deletar ela está indo para a exluir.php, normalmente.

<a href="excluir.php?op=del&id=<?=$id;?>">Deletar</a>

Isso pus na exluir.php

<?php
if(isset($_GET['op'] == 'del'){
$id = $_GET["id"];

$query = mysql_query("DELETE FROM sua_tabela WHERE id = $id")or die(mysql_error());
$num = mysql_affected_rows();

if($num>0){
header ("location:sua_pagina_de_redirecionamento.php");
}
}
?>

 

O que não entendi foi: Como a pagina excluir.php vai saber que o o "exluir" que cliquei foi da mensagem que eu realmente cliquei e quero exluir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu estou supondo q você fez um select +/- assim:

<?php
$sql = mysql_query("SELECT * FROM sua_tabela ORDER BY nome_da_coluna ASC");
if(mysql_num_rows($sql) < 1) {

echo "Nenhum recado encontrado!";

}else{

while($r = mysql_fetch_array($sql)){

$id = $r["id"];
$data = $r["data"];
$data = explode('-',$data);     
$titulo = $r["titulo"];
$conteudo = $r["conteudo"];
$autor = $r["autor"];
$setor = $r["setor"];
$id = $r["id_feed"];
$link = $r["link"];
$link = "\" $link \"";
?>
aqui você vai montar a tabela para exibir os resultados e deve ser aqui q você define o link para deletar o recado

<a href="excluir.php?op=del&id=<?=$id;?>">Deletar</a>

o recado vai ser deletado pelo id q esta definido no link excluir.php?op=del&id=<?=$id;?>

 

 

este é o arquivo excluir.php

<?php
if($_GET['op'] == 'del'){
$id = $_GET["id"];

$query = mysql_query("DELETE FROM sua_tabela WHERE id = $id")or die(mysql_error());
$num = mysql_affected_rows();

if($num>0){
header ("location:sua_pagina_de_redirecionamento.php");
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sim, agora entendi tudo. Fiz e testei da um erro assim: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?=109' at line 1

Então pus '' no nome da variável "id". ai ele funciona mas não exclui, testei também colocando o "id" de um registro do meu banco no lugar do "$id" e funcionou, excluiu perfeitamente. Ele não está pegando o id do recado da outra pagina ainda.

O meu select para exibir os dados está igual ao seu.

O codigo da excluir.php ficou assim com os nomes e a conexão:

		if($_GET['op'] == 'del'){
				$id = $_GET["id"];
				$conn = mysql_connect("localhost", "root", "") or die("Impossivel conectar");
					//Conectando em uma base de dados 
					mysql_select_db ("bd_usuarios", $conn); 
					$query = mysql_query("DELETE FROM feed WHERE id_feed = '$id'")or die(mysql_error());
					$num = mysql_affected_rows();
					header ("location:index.php");
					if($num>0){
						header ("location:index.php");
					}		
			}
Adicionei esse "header ("location:index.php")" para que ele volte para a pagina de recados após exluir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

te perguntar, o seu php esta ativado para mostrar todos os erros? inclusive os notice?

você tem algum include neste arquivo de exclusão para acessar o banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

te perguntar, o seu php esta ativado para mostrar todos os erros? inclusive os notice?

você tem algum include neste arquivo de exclusão para acessar o banco?

 

Sim está mostrando todos os erros, mas mesmo após dar o erro fui verificar no banco e o registro ainda estava lá!

Não, não uso include, fasso na própria página "exluir.php".

$conn = mysql_connect("localhost", "root", "") or die("Impossivel conectar");
//Conectando em uma base de dados                                        
mysql_select_db ("bd_usuarios", $conn); 
Como eu disse antes, eu creio que o excluir.php está funcionando, pois quando pus um id do meu banco no lugar da variável "id" na excluir.php ele exluiu, eu creio que o id do recado não está sendo puxado pela pagina excluir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe a demora para responder amigo "will_php" mas viajei no fim de semana, bem eu ja tinha tentado dar um echo na variável $id e nada era retornado, ai para testar atribuir um valor qualquer a ela e quando compilei esse valor foi retornado a mim. A pagina excluir.php ainda não está pegando o id do recado!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente fazer um debug. O seu código está entrando neste if?

 

                       if($_GET['op'] == 'del'){
                                echo 'entrou';
                                $id = $_GET["id"];
                                $conn = mysql_connect("localhost", "root", "") or die("Impossivel conectar");
                                        //Conectando em uma base de dados 
                                        mysql_select_db ("bd_usuarios", $conn); 
                                        $query = mysql_query("DELETE FROM feed WHERE id_feed = '$id'")or die(mysql_error());
                                        $num = mysql_affected_rows();
                                        header ("location:index.php");
                                        if($num>0){
                                                header ("location:index.php");
                                        }               
                        }

Veja se imprime alguma coisa.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pus exatamente assim! Só ai então pus o echo para imprimir a variável $id para ver se tinha algo, ai ficou assim:

	if($_GET['op'] == 'del'){
				$id = $_GET["id"];
				$conn = mysql_connect("localhost", "root", "") or die("Impossivel conectar");
					//Conectando em uma base de dados 
					mysql_select_db ("bd_usuarios", $conn); 
					$query = mysql_query("DELETE FROM feed WHERE id_feed = '$id'")or die(mysql_error());
					$num = mysql_affected_rows();
					echo $id;
					//header ("location:index.php");
					if($num>0){
						header ("location:index.php");
					}		
			}
Ele não imprimiu nada, ai atribui um valor a $id só pra testar, ai ele imprimiu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque isto no início do seu código.

 

<?php
echo '<pre>$_GET <br/>';
print_r($_GET);
die('</pre>');

Veja se a $_GET['id'] está vindo mesmo para a página.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque isto no início do seu código.

 

<?php
echo '<pre>$_GET <br/>';
print_r($_GET);
die('</pre>');

Veja se a $_GET['id'] está vindo mesmo para a página.

 

Carlos Eduardo

 

Ele retorno isso:

 

$_GET Array

(

[op] => del

[id] =>

 

 

Essa linha que manda o Get para a excluir.php. Só que não hà entendi direito, tem como você me esplicar? e me dizer se está correta?

echo "<a href=\"excluir.php?op=del&id=<?=$id;\">Deletar</a>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta linha está errada. Veja que você já está dentro do echo e coloca para abrir o php de novo.

 

echo "<a href=\"excluir.php?op=del&id=$id\">Deletar</a>"; 

Deve funcionar

 

Carlos Eduardo

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.