Здравствуйте, пытаюсь реализовать древовидные комментарии, есть такое в таблице комментариев: id - айди комментария parentID - айди главного (родительского) комментария есть такие записи, где parentID = 0 - главный комментарий id | parentID 1 | 0 2 | 1 3 | 1 4 | 2 5 | 3 6 | 5 вот как мне при такой ситуации узнать уровень вложенности, то есть например на каком уровне вложенности находиться айди 6 по отношению к id 1, заранее спасибо
Есть два варианта. 1. Каждый раз высчитывать его. (пересчитывая всех родителей) 2. Сделать отдельное поле для уровня вложенности и хранить его там. Вычислять для нового элемента просто - уровень вложенности родителя + 1
я думал над вторым способом, но, если есть 1, зачем использовать второй?) вот я немного не догоняю, как сделать первый способ?
Для первого варианта или рекурсивные запросы или хранимые процедуры. или изменить талицу на Nested Sets, Matherialized Path, Redundant Adjacency List.
короче я решил сделать второй вариант, спасибо. теперь еще вопрос, вот я из базы выбираю комментарии, как мне пронумеровать комментарии, то есть мне надо выбрать номер комментарии по его ид. то есть я выбираю такие id | name 1 | 2523 - 1 номер 5 | 223523 - 2 номер 19 | 3252523 - 3 номер 21 | 2523 - 4 номер 32 | 23523 - 5 номер как мне можно получить эти номера
vvsh насколько я знаю без хранимых процедур средствами запроса SQL никак но в php можешь счётчик использовать при проходе результата запроса
SDR, я сделал чуть по-другому, примитивно конечно получилось, но все же. спасибо всем за помощь и советы.
Simpliest это если сначала в массив перегнать, а так: Код (Text): while($row = mysql_fetch_row($result)) { // какой ключ? :) }