Как создать комментарии на сайте

Столкнулся с такой проблемой: на сайте требуются комментарии, начитавшись статей по правильному структурированию БД, пришёл к выводу, что нужно создать две таблицы: comments и comments_article. В первой хранится comments_id, comments_content и comments_date, во второй user_id и comments_id. С записью комментариев в БД проблем нету, проблема заключается в том, что я не понимаю, как составить запрос для получения comments_id, ведь, если делать по тому же user_id, то результатами выдачи будут все комментарии данного пользователя, если сравнивать по id и content, то, при условии, что пользователь пишет одни и те же комментарии, например, "привет", оно опять же будет выдавать все такие комментарии. Так как же правильно составить запрос по получению comments_id?

Код, не знаю, зачем, но вот:

$(document).ready(function () {

        $("#add-comment").on('submit', function (e) {
            e.preventDefault();
            if(!e.isDefaultPrevented()){
                e.returnValue = false;
            }

            var CommText = $('#addcom').val();

            var currentdate = new Date();
            if (currentdate.getMonth() < 10) {
                ResgetMonth = "0" + currentdate.getMonth();
            }
            if (currentdate.getSeconds() < 10) {
                ResgetSeconds = "0" + currentdate.getSeconds();
            }
            if (currentdate.getMinutes() < 10) {
                ResgetMinutes = "0" + currentdate.getMinutes();
            }
            if (currentdate.getHours() < 10) {
                ResgetHours = "0" + currentdate.getHours();
            }
            var DateTime =
                + currentdate.getFullYear() + "-"
                + ResgetMonth + "-"
                + currentdate.getDate() + " "
                + ResgetHours + ":"
                + ResgetMinutes + ":"
                + ResgetSeconds;

            $.post("add-comments.php", {CommText, DateTime}).done(function (data) {
                alert("Data Loaded: " + data);
            });

        });

    });
<form method="post" id="add-comment">
  <label for="addcom">Оставить комментарий:</label>
  <textarea name="addcom" id="addcom" cols="30" rows="5"></textarea>
  <input type="submit" id="submit">
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

php:

$UserInfo = $_POST['CommText'];
$CommentsTime = $_POST['DateTime'];

if (!empty($UserInfo)) {
    $CheckCommentString = preg_replace('%[\"\'@&|]%', '', $UserInfo);

    $UserId = $_SESSION['UserId'];

    $AddComment = mysqli_query($DBConnect, ("INSERT INTO `comments` (comments_content) VALUE ('$CheckCommentString')"));

    $CheckComment = mysqli_query($DBConnect, ("SELECT * FROM `comments` WHERE comment_date = '$CommentsTime'"));

    $CheckCommentRow = mysqli_fetch_array($CheckComment);

}

Ответы (1 шт):

Автор решения: Turboworld

Я бы завел комментарии в следующем виде:

  1. Таблица комментариев: comments (поля id, text, date, page) где page - это какой-то идентификатор (адрес) страницы со статьей, книгой или т.д.

  2. Вывести все комментарии по данной статье / книге можно с указанием в запросе ее идентификатора (page)

SELECT * from comments WHERE page ='идентификатор_страницы' sort by date DESC

Как-то так :)

→ Ссылка