Я хотел бы подойти к этому с помощью запроса AJAX на стороне клиента к php скрипту извлечения, который просматривает зарегистрированных пользователей SESSION['id']
, чтобы найти все комментарии авторов постов, которые являются потомками комментариев. зарегистрированный пользователь сделал
Frontend
Вы можете использовать любой способ отправки запроса к вашему скрипту PHP, я использовал jQuery для простоты.
Функция jQuery $.ajax
будет постоянно запускаться на странице для проверки уведомлений. Это было сделано, заключив его в функцию setInterval
.
Этот код не тестировался, поэтому не уверен на 100% в пространстве имен массива PHP, который вы получите обратно. Лучше всего console.log
объект data
в обработчике успеха здесь.
Вы заметите, что есть ссылка на скрипт readComment.php
, это может быть простой скрипт, который устанавливает comments.status = 1
для указания статус чтения.
setInterval(function() {
$.ajax({
url:"fetch.php",
method:"GET",
success:function(data)
{
console.log(data)
data.forEach(function(i,v) {
$( "#notifications" ).append( "<a href=readComment.php?id=" + v.id + ">unread notification</p>" );
});
}
});
}
}, 60 * 1000); // This will run every minute to check for notifications
Сервер
fetch.php
Я использую здесь оператор select с двумя предложениями WHERE IN
, чтобы получить все комментарии, сделанные авторами сообщения, которые являются детьми комментария, который сделал авторизованный пользователь. Я не на 100% по этому запросу, так как я не проверял, но это должно помочь вам начать.
$query = "SELECT
*
FROM
comments
WHERE
comments.user_id IN (SELECT posts.post_user FROM posts)
AND
comments.parent_comment_id IN (SELECT comments.id FROM comments WHERE comments.user_id = ".SESSION['id'].")"
AND
comments.status = 0";
$result = mysqli_query($connection, $query);
header("Status: 200");
header('Content-Type: application/json');
echo json_encode(array('data' => mysqli_fetch_array($result) ));
die;
Дайте мне знать, если вам нужна дополнительная информация.