Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
0 / 0 / 0
Регистрация: 25.10.2025
Сообщений: 7

Система древовидных комментариев

08.12.2025, 14:25. Показов 1615. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте делаю систему древовидных комментариев, но ничего не выводит. Подскажите, пожалуйста в чем проблема??
Структура бд такая:
SQL
1
`photos_comments`(`id`, `owner_id`, `target_id`, `text`, `time_created`, `parent_comment`)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php 
namespace App\Http\Controllers;
use DB;
use Crypto;
use Lang;
use Log;
 
function buildTree($comments, $parentId = null) {
    $tree = [];
    foreach ($comments as $comment) {
        if ($comment['parent_comment'] === $parentId) {
            $children = buildTree($comments, $comment['id']);
            if (!empty($children)) {
                $comment['children'] = $children;
            }
            $tree[] = $comment;
        }
    }
    return $tree;
} 
 
class PhotosController extends Controller {
public function __contruct() {
 
}
public function comments($photo_id){
  $get_comments = DB::table('photos_comments')->where('target_id',$photo_id)->orderBy('id','DESC')->get()->toArray();
 
    $tree = buildTree($get_comments);
    var_dump($tree);
return view('photos.comments',['tree'=>$tree,'target_id'=>$photo_id]);
}
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.12.2025, 14:25
Ответы с готовыми решениями:

Вывод древовидных комментариев
&lt;? $rez = mysql_query(&quot;SELECT id,data FROM asks ORDER BY id DESC&quot;,$db ); $myrow =...

Ограничение вложенности древовидных комментариев
Здравствуйте! Сделал у себя на сайте древовидные коментарии по уроку Попова, смог связать с...

Система комментариев через соц сети
Что можете посоветовать, движок самописный.

21
0 / 0 / 0
Регистрация: 25.05.2025
Сообщений: 54
09.12.2025, 18:01
Студворк — интернет-сервис помощи студентам
Что делать??
0
3061 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
11.12.2025, 07:31
Сначала небольшое примечание в примере массива у единственного дочернего элемента parent_id = 3, но элемента с таким id нет в массиве.

Добавлено через 3 минуты
вот мой вариант
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function buildTree(array $src): array
{
    /**
     * Результирующий массив.
     */
    $dst = [];
    /**
     * Плоский массив для индексации, где ключ - id, а значение - элемент
     */
    $index = [];
    /**
     * Временный массив для хранения родительских комментариев, если родительский пока комментарий не найден.
     */
    $temporary = [];
    foreach ($src as $value) {
        $value['children'] = [];
        $index[$value['id']] = $value;
        $parentId = (int) $value['parent_comment'];
        if (0 === $parentId) {
            if (isset($temporary[$value['id']])) {
                $value['children'] = $temporary[$value['id']]['children'];
                unset($temporary[$value['id']]);
            }
            $dst[] = &$index[$value['id']];
        } elseif (isset($index[$parentId])) {
            $index[$parentId]['children'][] = &$index[$value['id']];
        } elseif (isset($temporary[$parentId])) {
            $temporary[$parentId]['children'] = &$index[$value['id']];
        } else {
            $temporary[$parentId] = ['children' => [&$index[$value['id']]]];
        }
    }
    if (!empty($temporary)) {
        // @todo Если есть не найденные родительские комментарии, то принять решение, что делать в этом случае
    }
 
    return $dst;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2025, 07:31

Система комментариев
Народ возник вопрос как сделать большую систему комментариев что бы подключение было к одно бд но...

Система комментариев для сайта на PHP
Привет, проверте этот файл со скриптом комментария на php. Проблема этого скрипта в том что она не...

Система комментариев
Добрый вечер.Вопрос насчет системы комментариев.Может быть кто-то сталкивался с подобным и имеет...

Система комментариев для гостей и авторизованных пользователей
Здравствуйте. У меня такая проблема: на одной из страниц сайта мне нужно сделать систему...

Система комментариев на моем сайте – как показать все комментарии по конкретной статье?
Здравствуйте! Я не очень разбираюсь в PHP, но с большими усилиями и помощью людей, которые знают...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru