поэтому я хочу сделать небольшой блог в php и mysql, используя mvc arhitecture.i, чтобы добавить функцию, в которой вы можете сообщить комментарий (все прошло хорошо, но я не могу понять, как оставаться на одной странице после сообщения)
для показа страницы с сообщением и комментариями для этого сообщения я использую 2 функции
public function getPost($postId)
{
$db = $this->dbConnect();
$req = $db->prepare('SELECT id, title, content, DATE_FORMAT(creation_date, \'%d/%m/%Y à %Hh%imin%ss\') AS creation_date_fr FROM posts WHERE id = ?');
$req->execute(array($postId));
$post = $req->fetch();
return $post;
}
public function getComments($postId)
{
$db = $this->dbConnect();
$comments = $db->prepare('SELECT id, author, comment,report_status, DATE_FORMAT(comment_date, \'%d/%m/%Y à %Hh%imin%ss\') AS comment_date_fr FROM comments WHERE post_id = ? ORDER BY comment_date DESC');
$comments->execute(array($postId));
return $comments;
}
и это мой контроллер:
function post(){
$postManager = new PostManager();
$commentManager = new CommentManager();
$post = $postManager->getPost($_GET['id']);
$comments = $commentManager->getComments($_GET['id']);
require('view/frontend/postView.php');
}
моя функция для представления комментариев - это
public function reportComment($id)
{
$db = $this->dbConnect();
$report = $db->prepare('UPDATE comments SET report_status = 1 WHERE id = :id');
$report->bindParam(':id', $id, PDO::PARAM_INT);
$report->execute();
}
и контроллер
function report(){
$commentManager = new CommentManager();
$commentManager->reportComment($_GET['id']);
}
моя проблема в том, что я не могу перенаправить пользователя на страницу post (id), потому что я уже установил новый $ _GET в id комментария, а не в id сообщения; как я могу сохранить старый идентификатор сообщения, чтобы я мог оставаться на одной странице...
вот мой index.php, чтобы вы получили полную картину
elseif ($_GET['action'] == 'post') {
if (isset($_GET['id']) && $_GET['id'] > 0) {
post();
}...
elseif($_GET['action'] == 'report'){
if(!empty($_GET['id'])&& $_GET['id'] > 0){
report();
}
else{
echo 'not reported';
}
почему вы не добавляете больше параметров в $ _GET (например: $ _GET ('post_id'))
и немного исправить в этом коде:
if(!empty($_GET['id'])&& $_GET['id'] > 0){
report();
$postId = $_GET('post_id');
///// redirect to post by $postId
}