Я создаю систему вопросов и ответов для веб-сайта. У меня проблема. Я хочу, чтобы пользователи добавляли конкретные комментарии для каждого сообщения. сценарий, который я сделал, похож на Quora.com, поэтому вы можете понять, как работает мой скрипт... вот как выглядит моя таблица комментариев, пожалуйста, взгляните на рис. как я могу добавить конкретные комментарии для каждого сообщения?
//code for insert comments to the tables
function setComments($connection) {
if (isset($_POST['commentSubmit'])) {
$uid = $_POST['uid'];
$date = $_POST['date'];
$message = $_POST['message'];
//sql connection
$sql = "INSERT INTO comments (uid,date,message) VALUES ('$uid','$date','$message')";
$result = $connection ->query($sql);
}
}
//function for get comments from the databse
function getComments($connection) {
$sql = "SELECT * FROM comments";
$result = $connection ->query($sql);
while($row = $result->fetch_assoc()) {
//showing records
echo '<div id="comment_box">';
echo $row['uid'].'<br>';
//echo $row['cid'].'<br>';
echo nl2br($row['message']).'<br>';
echo $row['date'];
echo '</div>';
echo '<hr>';
}
}
Здесь я сделал две функции setComments для комментария вставки
другая функция для getComments
ОБНОВЛЕНО
эта таблица вопросов задает вопрос, чтобы пользователи могли задавать вопросы.
Вам просто нужна post_id
в таблице комментариев, так что каждый комментарий связан с определенной записью. И объявите его как внешний ключ.
И тогда обе функции set_comments
и get_comments
должны иметь параметр post_id
который будет вставлен в таблицу комментариев и запросить эти комментарии для определенной записи:
INSERT INTO comments (uid,date,message, post_id) VALUES ('$uid','$date','$message', '$post_id');
После этого, используя этот post_id
вы можете запросить эти комментарии под определенным сообщением этим идентификатором.
Обратите внимание: попробуйте использовать подготовленные инструкции для операций с базой данных.
Обновить:
Столбец, который вы должны добавить в качестве внешнего ключа, должен иметь тот же точный тип данных, что и столбец в исходной таблице.
Итак, предположим, что у вас есть таблица вопросов, с Id как integer. Затем столбец внешнего ключа, который вы должны добавить в таблицу комментариев, должен быть следующим:
ALTER TABLE comments ADD question_id INT NOT NULL;
ALTER TABLE comments ADD CONSTRAINT fk_question_id FOREIGN KEY (question_id) REFERENCES questions(id);
comments
ADDquestion_id
VARCHAR (11) NOT NULL AUTO_INCREMENT ПОСЛЕmessage
, ADD PRIMARY KEY (question_id
);