Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou fazendo um trabalho (TCC) e estou desenvolvendo um sistema onde existe um cadastro de comentário em determinado post, há também a opção de responder esse comentario, é ai que eu queria fazer um sistema que notificasse o usuario que teve seu comentario respondido, não precisa ser em tempo real.
Segue os códigos que eu uso para fazer a resposta e no banco de dados
Aqui são exibidos todos os comentários relacionados com o post:
if (isset($_POST['enviarEdicaoResposta'])) {
edita_resposta($_POST['texto_edicao'], $_GET['id'], $_POST['data_edicao'], $_POST['id_resposta']);
}
if (isset($_POST['enviarEdicaoComentario'])) {
edita_comentario($_POST['texto_edicao'], $_GET['id'], $_POST['data_edicao'], $_POST['id_comentario']);
}
if (isset($_POST['enviarComentario'])) {
$retorno = comentario($_POST['comentario'], $_GET['id'], $_SESSION['usuarioId'], $_POST['data_comentario']);
}
if (isset($_POST['enviarResposta'])) {
$retorno = resposta_comentario($_POST['resposta'], $_POST['id_comentario'], $_SESSION['usuarioId'], $_POST['data_resposta'], $_GET['id']);
}
$exibe_posts = select_post_comentario($_GET['id'] );
?>
<div class="ui main text container">
<h2 style="word-wrap: break-word;" class="centralizar"><?php echo ($exibe_posts['titulo_post']); ?></h2>
<p class="text_direita"><?php echo "Autor: ".($exibe_posts['nome'])." (".($exibe_posts['apelido']).")" ;?></p>
<p class="text_direita"><?php echo "Data de Publicação: ".($exibe_posts['data_publicacao']); ?></p>
<p style="word-wrap: break-word;" class="text_justifica"><?php echo ($exibe_posts['texto_post']); ?></p>
<hr>
<div class="ui threaded comments divComentario">
<h3 class="ui dividing header" id="comentarios">Comentarios</h3>
<?php
$coments = seleciona_comentario($_GET['id']);
if (!empty($coments)) {
foreach ($coments as $exibe_comentarios) {
?>
<div class="comment">
<a class="avatar">
<img src="../img/perfil.jpg">
</a>
<div class="content">
<a class="author"><?php echo $exibe_comentarios['apelido']; ?></a>
<div class="metadata">
<span class="date"><?php echo $exibe_comentarios['data_comentario']; ?></span>
</div>
<div class="text">
<?php echo $exibe_comentarios['texto_comentario'] ?>
</div>
<div class="actions">
<a class="reply responder">Responder</a>
<?php
if (isset( $_SESSION['usuarioId'])) {
if($exibe_comentarios['id_user'] == $_SESSION['usuarioId']){
?>
<a href="controlador/deletar_comentario.php?id=<?php echo$exibe_comentarios['id_coment']; ?>&id_post=<?php echo$_GET['id']; ?>"><i class="remove icon"></i></a>
<a class="editar"><i class="write icon"></i></a>
<?php
}
}
?>
<form class="ui reply form formEditar" method="POST" style="display: none;">
<div class="field">
<textarea name="texto_edicao"><?php echo $exibe_comentarios['texto_comentario']; ?></textarea>
<input type="hidden" value="<?php echo $exibe_comentarios['id_coment']; ?>" name="id_comentario">
<input type="hidden" value="<?php $data = dataAtual(); echo$data; ?>" name="data_edicao">
</div>
<button class="ui green inverted labeled submit icon button" name="enviarEdicaoComentario" type="submit">
<i class="icon edit"></i> Confirmar Edição
</button>
</form>
<form class="ui reply form formResponder" method="POST" style="display: none;">
<div class="field">
<textarea name="resposta"></textarea>
<input type="hidden" value="<?php echo $exibe_comentarios['id_coment']; ?>" name="id_comentario">
<input type="hidden" value="<?php $data = dataAtual(); echo$data; ?>" name="data_resposta">
</div>
<button class="ui green inverted labeled submit icon button" name="enviarResposta" type="submit">
<i class="icon edit"></i> Adicionar Resposta
</button>
</form>
</div>
</div>
<?php
$respostas = seleciona_resposta($exibe_comentarios['id_coment']);
if (!empty($respostas)) {
foreach ($respostas as $exibe_respostas) {
if ($exibe_comentarios['id_coment'] == $exibe_respostas['id_comentario_resposta']) {
?>
<div class="comments" style="">
<div class="comment">
<a class="avatar">
<img src="../img/perfil.jpg">
</a>
<div class="content">
<a class="author"><?php echo $exibe_respostas['apelido']; ?></a>
<div class="metadata">
<span class="date"><?php echo $exibe_respostas['data_resposta']; ?></span>
</div>
<div class="text">
<?php echo $exibe_respostas['texto_resposta']; ?>
</div>
<div class="actions">
<?php
if (isset( $_SESSION['usuarioId'])) {
if($exibe_respostas['id_user'] == $_SESSION['usuarioId']){
?>
<a href="controlador/deletar_resposta.php?id=<?php echo$exibe_respostas['id_resposta']; ?>&id_post=<?php echo$_GET['id']; ?>"><i class="remove icon"></i></a>
<a class="editar"><i class="write icon"></i></a>
<?php
}
}
?>
<form class="ui reply form formEditar" method="POST" style="display: none;">
<div class="field">
<textarea name="texto_edicao"><?php echo $exibe_respostas['texto_resposta']; ?></textarea>
<input type="hidden" value="<?php echo $exibe_respostas['id_resposta']; ?>" name="id_resposta">
<input type="hidden" value="<?php $data = dataAtual(); echo$data; ?>" name="data_edicao">
</div>
<button class="ui green inverted labeled submit icon button" name="enviarEdicaoResposta" type="submit">
<i class="icon edit"></i> Confirmar Edição
</button>
</form>
</div>
</div>
</div>
</div>
<?php
}
}
?>
</div>
<?php
;}
}
}
?>
<?php if(!is_user_logged_in()){ ?>
<a href="../estatico/login.php" class="ui item">Para criar um novo COMENTARIO, efetue LOGIN</a>
<?php } else{ ?>
<form class="ui reply form formComentario" method="POST">
<div class="field">
<textarea name="comentario"></textarea>
<input type="hidden" id="" name="data_comentario" value="<?php $data = dataAtual(); echo$data; ?>">
</div>
<button class="ui orange inverted labeled submit icon button" name="enviarComentario" type="submit">
<i class="icon edit"></i> Adicionar Comentario
</button>
</form>
<?php } ?>
</div>
</div>
</div>
</div>
Aqui é onde eu cadastro meu comentário:
<?php
function comentario($comentario, $id_post, $id_usuario, $data_comentario){
$conexao = obterConexao();
$conexao->exec("INSERT INTO comentarios (texto_comentario, usuario_id_user, id_post, data_comentario) VALUES ('$comentario', '$id_usuario' ,'$id_post', '$data_comentario')");
header("Location:comentario_post.php?id=$id_post#comentarios");
}
Aqui onde eu cadastro minha resposta:
<?php
function resposta_comentario($resposta, $id_comentario, $id_usuario, $data_resposta, $id_post){
$conexao = obterConexao();
$conexao->exec("INSERT INTO resposta_comentario (texto_resposta, id_usuario_resposta, id_comentario_resposta, data_resposta) VALUES ('$resposta', '$id_usuario' ,'$id_comentario', '$data_resposta')");
header("Location:comentario_post.php?id=$id_post#comentarios");
}
Aqui a tabela de comentários:
--
-- Estrutura da tabela comentarios
--
CREATE TABLE `comentarios` (
`id_coment` int(11) NOT NULL,
`texto_comentario` varchar(1000) DEFAULT NULL,
`usuario_id_user` int(11) DEFAULT NULL,
`id_post` int(11) DEFAULT NULL,
`data_comentario` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Indexes for dumped tables
--
--
-- Indexes for table comentarios
--
ALTER TABLE `comentarios`
ADD PRIMARY KEY (`id_coment`),
ADD KEY `id_user` (`usuario_id_user`),
ADD KEY `id_post` (`id_post`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table comentarios
--
ALTER TABLE `comentarios`
MODIFY `id_coment` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;--
-- Limitadores para a tabela comentarios
--
ALTER TABLE `comentarios`
ADD CONSTRAINT `comentarios_ibfk_1` FOREIGN KEY (`usuario_id_user`) REFERENCES `usuario` (`id_user`),
ADD CONSTRAINT `comentarios_ibfk_2` FOREIGN KEY (`id_post`) REFERENCES `post` (`id_post`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Aqui a tabela resposta_comentário:
--
-- Estrutura da tabela resposta_comentario
--
CREATE TABLE `resposta_comentario` (
`id_resposta` int(11) NOT NULL,
`texto_resposta` varchar(45) DEFAULT NULL,
`id_comentario_resposta` int(11) NOT NULL,
`id_usuario_resposta` int(11) NOT NULL,
`data_resposta` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Indexes for dumped tables
--
--
-- Indexes for table resposta_comentario
--
ALTER TABLE `resposta_comentario`
ADD PRIMARY KEY (`id_resposta`),
ADD KEY `fk_resposta_comentario_comentarios_idx` (`id_comentario_resposta`),
ADD KEY `fk_resposta_comentario_usuario1_idx` (`id_usuario_resposta`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table resposta_comentario
--
ALTER TABLE `resposta_comentario`
MODIFY `id_resposta` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;--
-- Limitadores para a tabela resposta_comentario
--
ALTER TABLE `resposta_comentario`
ADD CONSTRAINT `fk_resposta_comentario_comentarios` FOREIGN KEY (`id_comentario_resposta`) REFERENCES `comentarios` (`id_coment`) ON DELETE NO ACTION ON UPDATE NO ACTION,
ADD CONSTRAINT `fk_resposta_comentario_usuario1` FOREIGN KEY (`id_usuario_resposta`) REFERENCES `usuario` (`id_user`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
e por ultimo a Tabela de posts:
--
-- Estrutura da tabela post
--
CREATE TABLE `post` (
`id_post` int(11) NOT NULL,
`titulo_post` varchar(80) DEFAULT NULL,
`texto_post` varchar(10000) DEFAULT NULL,
`data_publicacao` date NOT NULL,
`usuario_id_user` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Indexes for dumped tables
--
--
-- Indexes for table post
--
ALTER TABLE `post`
ADD PRIMARY KEY (`id_post`),
ADD KEY `id_user` (`usuario_id_user`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table post
--
ALTER TABLE `post`
MODIFY `id_post` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17;--
-- Limitadores para a tabela post
--
ALTER TABLE `post`
ADD CONSTRAINT `post_ibfk_1` FOREIGN KEY (`usuario_id_user`) REFERENCES `usuario` (`id_user`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Eu tenho uma ideia, que seria adicionar uma coluna "Status" no comentário, e quando ele tivesse uma resposta, adicionaria algo nessa coluna, mas não sei se seria uma boa ideia.
PS: Primeiro post feito aqui, me desculpem se tiver algo errado.Carregando comentários...