Как создать комментарии на сайте
Столкнулся с такой проблемой: на сайте требуются комментарии, начитавшись статей по правильному структурированию БД, пришёл к выводу, что нужно создать две таблицы: 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 шт):
Я бы завел комментарии в следующем виде:
Таблица комментариев: comments (поля id, text, date, page) где page - это какой-то идентификатор (адрес) страницы со статьей, книгой или т.д.
Вывести все комментарии по данной статье / книге можно с указанием в запросе ее идентификатора (page)
SELECT * from comments WHERE page ='идентификатор_страницы' sort by date DESC
Как-то так :)