Главная » PHP » mysql - ответы на комментарии: структура базы данных и php-запросы
mysql — ответы на комментарии: структура базы данных и php-запросы
Мне нужно добавить функциональность «ответы на комментарии» на мой сайт, используя PHP и MYsql.
У меня есть эти 3 базы данных:
PAGE
╔═════════╦══════════╗
║ id ║ содержание ║
╠═════════╬══════════╣
║ 1 ║ текст ║
║ 2 ║ текст ║
║ 3 ║ текст ║
╚═════════╩══════════╝
USER
╔═════════╦══════════╗
║ id ║ имя ║
╠═════════╬══════════╣
║ 1 ║ имя ║
║ 2 ║ имя ║
║ 3 ║ имя ║
╚═════════╩══════════╝
КОММЕНТАРИИ
╔═════════╦══════════╦═══════════╦══════════╗
║ id ║ user_id ║ page_id ║ content ║
╠═════════╬══════════╬═══════════╬══════════╣
║ 1 ║ 1 ║ 1 ║ текст ║
║ 2 ║ 2 ║ 1 ║ текст ║
║ 3 ║ 2 ║ 2 ║ текст ║
╚═════════╩══════════╩═══════════╩══════════╝
Я заполняю различные страницы простым запросом (page.php? Page = 1 имеет содержимое, отличное от page.php? Page = 2):
$content = $db->prepare("SELECT
p.id AS page_id,
p.content AS content
FROM `page_content` AS p
WHERE p.id = :id
");
$content->BindValue(':id', $_GET['page']);
$content->execute();
$content = $content->fetchAll(PDO::FETCH_ASSOC);
и затем показывает результаты с «эхо»:
<p><?php echo $content[0]['content']; ?></p>
Для того, чтобы показать все комментарии относительной страницы, я готовлю и выполняю следующий запрос:
$comments = $db->prepare("SELECT
c.id AS comment_id,
c.user_id AS user_id,
c.page_id AS page_id,
c.content AS comment_content,
u.id AS user_id,
u.name AS user_name
FROM `comments` AS c
LEFT JOIN `users` AS u
ON u.id = c.user_id
WHERE c.page_id = :id
");
$comments->BindValue(':id', $_GET['page']);
$comments->execute();
$comments = $comments->fetchAll(PDO::FETCH_ASSOC);
Теперь, просто используя «foreach», я могу видеть все относительные комментарии и автора внизу содержимого страницы:
Теперь мне нужно добавить ответы на комментарии, с авторами тоже.
Я строю следующую базу данных:
ОТВЕТЫ НА КОММЕНТАРИИ
╔═════════╦══════════════╦═══════════╦══════════╗
║ id ║ is_reply_to ║ user_id ║ content ║
╠═════════╬══════════════╬═══════════╬══════════╣
║ 1 ║ 3 ║ 1 ║ текст ║
║ 2 ║ 2 ║ 1 ║ текст ║
║ 3 ║ 2 ║ 2 ║ текст ║
╚═════════╩══════════════╩═══════════╩══════════╝
Отсюда я не могу пройти через мое «веб-приложение» и завершить его.
Я не могу понять, как вызвать запрос и как сгруппировать результаты в правильном порядке (следующий комментарий появляется в списке только после того, как список ответов предыдущего комментария закончен — если, конечно, есть ответы).
Мне нужен только один уровень для ответов на комментарии. Не интересует «ответы ответов».
Пробовал другие решения, которые я нашел, читая другие ответы, но ни один из них мне не помог.
Мне нужно добавить функциональность «ответы на комментарии» на мой сайт, используя PHP и MYsql.
У меня есть эти 3 базы данных:
Я заполняю различные страницы простым запросом (page.php? Page = 1 имеет содержимое, отличное от page.php? Page = 2):
и затем показывает результаты с «эхо»:
Для того, чтобы показать все комментарии относительной страницы, я готовлю и выполняю следующий запрос:
Теперь, просто используя «foreach», я могу видеть все относительные комментарии и автора внизу содержимого страницы:
Теперь мне нужно добавить ответы на комментарии, с авторами тоже.
Я строю следующую базу данных:
Отсюда я не могу пройти через мое «веб-приложение» и завершить его.
Я не могу понять, как вызвать запрос и как сгруппировать результаты в правильном порядке (следующий комментарий появляется в списке только после того, как список ответов предыдущего комментария закончен — если, конечно, есть ответы).
Мне нужен только один уровень для ответов на комментарии. Не интересует «ответы ответов».
Пробовал другие решения, которые я нашел, читая другие ответы, но ни один из них мне не помог.
Решение
Задача ещё не решена.
Другие решения
Других решений пока нет …