Как создать идентификатор родителя, а затем заставить ребенка ссылаться на него в многопоточной системе комментирования?

0

Я пытаюсь создать систему комментариев, в которой могут быть сделаны комментарии, и люди могут отвечать на комментарии на более глубоком уровне (например, reddit). Я несколько понимаю, как ребенок ссылается на родительский идентификатор, чтобы он мог отображаться под родителем, но как вы на самом деле создаете родительский идентификатор, а затем получите этот идентификатор для ссылки на ребенка?

Вот пример того, что я хочу:

Main Comment
    Reply to Main Comment
    Reply to Main Comment
        Reply to Child Comment
            Reply to Child Child Comment
    Reply to Main Comment
Main Comment

И я понимаю, что глубина будет:

0
 1
 1
  2
   3
 1
0

Но как мне назначить родительский идентификатор, так что первый основной комментарий говорит: AAA, а второй главный комментарий - AAB и т.д.?

Спасибо за любую помощь!

Теги:

2 ответа

0

Во-первых, вы хотите настроить структуру таблицы. На сайте, который я реализовал, в таблицах были такие важные поля, как name, content, email и т.д. Кроме того, у него было поле parent_id которое могло ссылаться на другой комментарий в таблице. Это поле имеет NULL если комментарий находится на верхнем уровне.

В моем PHP-скрипте он запрашивал бы все комментарии, имеющие parent_id = NULL, а именно, только комментарии на верхнем уровне. Затем, пропуская все комментарии верхнего уровня, я бы parent_id любые комментарии с parent_id равным id комментария, который я прокрутил. Тогда я буду стилизовать его с отступом.

Ваш псевдокод будет выглядеть так:

// Query for comments
while ($comment = mysqli_fetch_array($comments)) {
  // Render top level comment
  // Query for sub-level comments with parent_id of $comment
  while ($subcomments = mysqli_fetch_array($subcomments)) {
    // Render sub-level comment
  }
}
0
Parent
 - New Comment
   - This comments parent is "New Comment"
   - This comments parent is "New Comment"
 - This Comments parent is "Parent"

Родитель является "главным образом" комментарием внутри себя, просто доступ к форматированию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню