Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Рекурсия по дереву :-)
 
 автор: Duran   (31.08.2006 в 11:27)   письмо автору
 
 

Мучаюсь достаточное время, а работающих вариантов не придумал...
Имеется след. упрощенная структура данных (дерево):

p1
|-----p1.1.
| |
| -----p1.1.1
| |
| ----- p1.1.2
|
|-----p1.2.
| |
| -----p1.2.1
| |
| ----- p1.2.2


ветви типа Px.x.x содержат числовые значения, сыммы которых надо получить в ветвях типа Px.x , а в Px суммы Px.x соответственно. Буду очень признателен хотя бы за алгоритм :-)

   
 
 автор: Trianon   (31.08.2006 в 11:52)   письмо автору
 
   для: Duran   (31.08.2006 в 11:27)
 

p1
|-----p1.1.
|          |
|           -----p1.1.1
|          |
|          -----  p1.1.2
|          
|-----p1.2.
|          |
|           -----p1.2.1
|          |
|          -----  p1.2.2


А само дерево-то как представлено?

   
 
 автор: Loki   (31.08.2006 в 12:49)   письмо автору
 
   для: Duran   (31.08.2006 в 11:27)
 

так а в чем вопрос-то?

SELECT SUM(Px.x.x) WHERE parent_id=Px.x

   
 
 автор: Duran   (31.08.2006 в 14:24)   письмо автору
 
   для: Loki   (31.08.2006 в 12:49)
 

Так не пойдет :-)
В базе хранятся id строки и pid родительской строки и статус записи. А конкретно структура такая - Управление - > Отдел-> бюро-> персонал. Нужно посчитать кол-во денюжек по бюро (сумма денюжек персонала бюро) и вывести, посчитать по отделу , и управлению. Поле "статут" отвечает за "различие" между персоналом и орг. структурой. Дык вот я не могу подняться по этому "дереву", чтобы при выводе статистики за отчетный период проставить итоговые суммы по орг. структурам.

   
 
 автор: Loki   (31.08.2006 в 15:16)   письмо автору
 
   для: Duran   (31.08.2006 в 14:24)
 

значит вам остается только поместить мой запрос в цикл:)

   
 
 автор: Duran   (31.08.2006 в 16:45)   письмо автору
 
   для: Loki   (31.08.2006 в 15:16)
 

Все равно не пойдет :-)
Денюшки по персоналу - это ДЕбит и крЕдит, которые в свою очередь тоже расчитывается...
Например:
1. Получил запись из базы, которая по статусу орг структура (управдение). pid указывает на насколько подчиненных оргструктур(отделы), которые в свою очередь тоже имеют вложенные оргструктуры (бюро), которые имеют в подчинении персонал, по которому производится расчет дебита и кредита по каждому, а потом суммируется по бюро, затем все бюро суммируются по отделу и.т.д....

   
 
 автор: Loki   (31.08.2006 в 17:16)   письмо автору
 
   для: Duran   (31.08.2006 в 16:45)
 

Как я понимаю, суммы отличные от нулей - только на листьях дерева. Во всех ветсях должны быть нули. Значит мы просто рекурсивно спускаемся от заданного узла, по пути суммируя все, что нам попадается. Так как в ветвях суммы равны нулю, то они на итог влиять не будут - будут влиять только листья.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования