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», я могу видеть все относительные комментарии и автора внизу содержимого страницы:

foreach ($comments as $value) {
echo '<h4>' . $value['user_name'] . '</h4>' ;
echo $value['comment_content'] . '<br/><br/>' ;
}

Теперь мне нужно добавить ответы на комментарии, с авторами тоже.
Я строю следующую базу данных:

ОТВЕТЫ НА КОММЕНТАРИИ
╔═════════╦══════════════╦═══════════╦══════════╗
║ id ║ is_reply_to ║ user_id ║ content ║
╠═════════╬══════════════╬═══════════╬══════════╣
║ 1 ║ 3 ║ 1 ║ текст ║
║ 2 ║ 2 ║ 1 ║ текст ║
║ 3 ║ 2 ║ 2 ║ текст ║
╚═════════╩══════════════╩═══════════╩══════════╝

Отсюда я не могу пройти через мое «веб-приложение» и завершить его.
Я не могу понять, как вызвать запрос и как сгруппировать результаты в правильном порядке (следующий комментарий появляется в списке только после того, как список ответов предыдущего комментария закончен — если, конечно, есть ответы).
Мне нужен только один уровень для ответов на комментарии. Не интересует «ответы ответов».

Пробовал другие решения, которые я нашел, читая другие ответы, но ни один из них мне не помог.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]