Комментарии на сайте отображаются благодаря следующему коду:
<form class="form_comments" action="comments.php" method="post">
<textarea class="com_text" name="text_comment" maxlength="222" placeholder="Оставьте Ваш комментарий"></textarea>
<input type="hidden" name="page_id" value="<?php echo $art['id']; ?>">
<input class="sb" type="submit" value="Отправить">
</form>
Файл comments.php
<?php
$page_id = $_POST["page_id"];
$text_comment = $_POST["text_comment"];
$text_comment = htmlspecialchars($text_comment);// Преобразуем спецсимволы в HTML-сущности
$mysqli = new mysqli("localhost", "root", "123", "db");// Подключается к базе данных
$mysqli->query("INSERT INTO `comments` (`page_id`, `text_comment`) VALUES ('$page_id', '$text_comment')");// Добавляем комментарий в таблицу
header("Location: ".$_SERVER["HTTP_REFERER"]);// Делаем реридект обратно
?>
И вывод на страничке:
<?php
$result = $connection->query("SELECT id FROM `films`");
$row = $result->fetch_assoc();
$page_id = $row['id']; // уникальный id фильма
$mysqli = new mysqli("localhost", "root", "123", "db");// Подключается к базе данных
$result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id'"); //Вытаскиваем все комментарии для данной страницы
while ($row = $result_set->fetch_assoc()) {
print_r($row); //Вывод комментариев
echo "<br>";
}
?>
Есть таблица films в которой id имеет уникальный идентификатор фильма. И comments в которой есть id,page_id (id страницы, на которой был оставлен комментарий), text_comment.
Проблема в том, что комментарии написанные допустим под фильмом с id 1 отображаются и под другими тоже.
Подскажите пожалуйста в чём проблема?
Для получения конкретного фильма вам необходимо например добавить GET параметр: film.php?id=1 - где 1 будет id фильма который вытаскивается в данный момент
Далее код вывода меняется:
<?php
$page_id = $_GET['id']; // уникальный id фильма
$mysqli = new mysqli("localhost", "root", "123", "db");// Подключается к базе данных
$result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id'"); //Вытаскиваем все комментарии для данной страницы
while ($row = $result_set->fetch_assoc()) {
print_r($row); //Вывод комментариев
echo "<br>";
}
?>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Почему нельзя передать объекты в массив подобным образом?