parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Строю деревья, а они не строятся

Oleg 11.08.2003 22:35

Выдаёт вот такую ошибку


Unhandled Exception (Debug)
invalid number (double)
0==0

SELECT *
FROM
forum_message,
forum_message_body
WHERE
(
forum_message.forum_message_id=forum_message_body.forum_message_id AND
forum_id=0 AND
is_published=1 AND
(forum_message.forum_message_id=0 OR
thread_id=0)
)
GROUP BY forum_message.forum_message_id
ORDER BY dt_published DESC(1)
exception.type=number.format
--------------------------------------------------------------------------------
select y:/home/test2.ru/www/classes/forum.p(228)
build_tread y:/home/test2.ru/www/classes/forum.p(221)
if y:/home/test2.ru/www/classes/forum.p(221)
connect y:/home/test2.ru/www/auto.p(21)
dbconnect y:/home/test2.ru/www/classes/forum.p(199)
print_tred_message y:/home/test2.ru/www/forum/index.html(13)
body_main y:/home/test2.ru/www/auto.p(152)
body y:/home/test2.ru/www/auto.p(14)


Код файла y:/home/test2.ru/www/classes/forum.p выглядит вот так
###################################################################
#Вывод всех сообщений указанного треда
###################################################################
@print_tred_message[]

#Соединяемся с базой
^MAIN:dbconnect{

#Достаём данные из базы
   $messages[^table::sql{
        SELECT *
        FROM
            forum_message,
            forum_message_body
        WHERE
            (
                forum_message.forum_message_id=forum_message_body.forum_message_id AND
                forum_id=^if(def $form:forum){$form:forum}{0} AND
                is_published=1 AND
               (forum_message.forum_message_id=^if(def $form:tred){$form:tred}{0} OR
                thread_id=^if(def $form:tred){$form:tred}{0})
            )
        GROUP BY forum_message.forum_message_id

#Сортируем список тредов в обратном порядке
        ORDER BY dt_published ^if(^form:tred.int(0)==0){DESC}{}}]

#Вызываем построитель деревьев
^if(def $messages){^build_tread[$messages]}{}}

#################################################################
#Строим древовидную структуру
#################################################################
@build_tread[messag][live_message]
#Выбираем родителя
$sel_mes[^messag.select{$messag.parent_id==^live_message.int(0)}]

#Перебираем родителей 
^sel_mes.menu{

#Сокращение для читаемост ЭТО 228 СТРОКА
$url_mes[/forum/?tred=$sel_mes.forum_message_id]

#Если сообщение корневое(верхнего уровня)читаем количество сообшений в треде
^if(^form:tred.int(0)==0){$num_messages[^table::sql{select * from forum_message where thread_id=$sel_mes.forum_message_id AND forum_id=0}]}{}

#Выводим сообщения
^shablon[^if($sel_mes.thread_id==0){$url_mes}{};$sel_mes.title;$sel_mes.dt_published;;$sel_mes.author;$sel_mes.body;
<table>
<tr>
	<td valign="middle">^ansver[$sel_mes.forum_message_id;^if($sel_mes.thread_id==0){$sel_mes.forum_message_id}{$sel_mes.thread_id};0]</td>
	<td valign="top">^if(^form:tred.int(0)==0){<a href="$url_mes">Ответов:^num_messages.count[]</a>}{}</td>
</tr>
</table>]

#Начинаем строительство
<table>

#Организуем отступ
<td>&nbsp;</td>

#Вызывем повторно
<td>^build_tread[$sel_mes.forum_message.forum_message_id]</td>
</table>
}
Заранее благодарю за любую помощь