Создать ответ 
Построение дерева иерархии или дерева комментариев
Автор Сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #31
RE: Построение дерева иерархии или дерева комментариев
Ого добавил в эту строчку:
$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and first_parent=0 ORDER BY id LIMIT ".($comment_list*5-5).",5");

параметр desc и комментарии стали выводиться и всё заработало!!!!!! )))))))))))


Кроме вывода аваторов...
21.07.2012 15:15:20
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #32
RE: Построение дерева иерархии или дерева комментариев
Помимо аватаров у Вас все равно что-то не так, т.к. на каждой страничке должно выводиться по 5 родительских комментариев.

Судя по всему у Вас не правильно пишутся значения в базу в поле first_parent.
Проверьте код кнопки "Ответить":

Код:
<div align="center" style="width:100px; border: 1px solid #000;"><span class="size14" onClick="comm_on(0,'.$tags[$parent][$i][0].','.$tags[$parent][$i][4].')">Ответить</span></div>

Про аватарки писал в 30 сообщении - http://usefulscript.ru/forum/showthread....534#pid534
У Вас остался код добавления URL в массив $ava_user[] или Вы его тоже снесли?
21.07.2012 16:02:13
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #33
RE: Построение дерева иерархии или дерева комментариев
Нет ничего что касается аваторов не сносил: вот так у меня идёт:

PHP код:
Здесь соединение с базой регистрации (аваторки). 

$res mysql_query ("SELECT name, photo FROM users WHERE 1");
 
$number mysql_num_rows($res);
 for (
$n=1$n<=$number$n++) {
 
$myrow mysql_fetch_array($res); 
 
$ava_user[$myrow[name]]=$myrow[photo];
 }

Здесь соединение с базой комментариев.


function 
parents($parent=0,$left=0) {
 global 
$tags;

 for (
$i=0;$i<=count($tags[$parent])-1;$i++) {

 
$result_minus mysql_query("SELECT sum(ocenka=1), sum(ocenka=0) FROM ocenka_comment WHERE comment_id='".$tags[$parent][$i][0]."' LIMIT 1");
 
$ocenka_com=mysql_fetch_array($result_minus);

 if (
$tags[$parent][$i][2]=='Incognito'$tags[$parent][$i][2]='<font color="#cc1111">Incognito</font>';
      echo 
'<div align="right" style="margin:0px 0px 0px '.$left.'px;">';

 echo 
'<br><table border="0" width="95%" style="border: 1px solid #4874a3;" bgcolor="#fffabc"><tr>';
 echo 
'<td align="left" style="padding:5px 5px 5px 5px;">';
 echo 
'<div id="m'.$tags[$parent][$i][0].'"></div><b>'.$tags[$parent][$i][2].'</b></td>';
 echo 
'<td width="140">';
 echo 
'<span style="font-size:12px;">('.$tags[$parent][$i][3].')</span></td>';
 echo 
'<td width="20" >';
 echo 
'<form method="POST" action="'.$_SESSION[mess_url].'#m'.$tags[$parent][$i][0].'">';
 echo 
'<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
 echo 
'<input type="hidden" name="ocenka" value="1">';
 echo 
'<input type="image" src="comm_up.gif" title="Хороший комментарий" align="middle">';
 echo 
'</form></td>';
 echo 
'<td width="5"><b>'.($ocenka_com[0]-$ocenka_com[1]).'</b></td>';
 echo 
'<td width="20">';
 echo 
'<form method="POST" action="'.$_SESSION[mess_url].'#m'.$tags[$parent][$i][0].'">';
 echo 
'<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
 echo 
'<input type="hidden" name="ocenka" value="0">';
 echo 
'<input type="image" src="comm_down.gif" title="Плохой комментарий" align="middle">';
 echo 
'</form></td></tr></table>';
 echo 
'<table border="0" width="95%" style="border: 1px solid #eeeeee;"bgcolor="#f0fff0">';
echo 
'<tr><td width="100"><img src="'.$ava_user[$tags[$parent][$i][2]].'">';
echo 
'<td>';
if ((
$ocenka_com[0]-$ocenka_com[1])<0)
echo 
'<div><a href="javscript://" class="spoiler_link">Показать / скрыть плохой комментарий</a><div class="spoiler_body">'.wordwrap(nl2br($tags[$parent][$i][1]), 70"\n"1).'</div></div>';
else echo 
wordwrap(nl2br($tags[$parent][$i][1]), 70"\n"1);
 echo 
'</td></tr></table>';
echo 
'<div align="center" style="width:100px; border: 1px solid #000;"><span class="size14" onClick="comm_on(0,'.$tags[$parent][$i][0].','.$tags[$parent][$i][4].')">Ответить</span></div>';
     if (isset(
$tags$tags[$parent][$i][0] ])) parents($tags[$parent][$i][0],20);
     echo 
'</div>';
 }
 } 

строчка <img src="'.$ava_user[$tags[$parent][$i][2]].'"> не помогает..
21.07.2012 16:12:50
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #34
RE: Построение дерева иерархии или дерева комментариев
Выловил небольшой баг (неверные данные записывались в MySQL) из-за которого неправильно считалась разбивка страничек.

Для его исправления после строчки
Код:
if ($tags[$parent][$i][2]=='Administrator') $tags[$parent][$i][2]='<font color="#cc1111">Administrator</font>';

необходимо добавить строчку:
Код:
if ($tags[$parent][$i][4]==0) $tags[$parent][$i][4]=$tags[$parent][$i][0];
21.07.2012 16:30:54
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #35
RE: Построение дерева иерархии или дерева комментариев
(21.07.2012 16:30:54)Admin писал(а):  необходимо добавить строчку:
Код:
if ($tags[$parent][$i][4]==0) $tags[$parent][$i][4]=$tags[$parent][$i][0];

Ага, добавил, но всё равно пропадают в небытие целые ветки комментариев (код кнопки "отправить" сделал по Вашему примеру). Кстати ячейки first_parent в базе почаму то всегда на нуле, скажите пожалуйста так и должно быть?
21.07.2012 16:43:32
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #36
RE: Построение дерева иерархии или дерева комментариев
first_parent равно нулю только для родительских комментариев, все последующие в ветке должны иметь там id родительского комментария.

Опять забыл, что у Вас оценки хранятся в другой базе. Поэтому везде переменную $tags[$parent][$i][6] надо заменить на $tags[$parent][$i][4].
21.07.2012 16:57:09
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #37
RE: Построение дерева иерархии или дерева комментариев
(21.07.2012 16:57:09)Admin писал(а):  Опять забыл, что у Вас оценки хранятся в другой базе. Поэтому везде переменную $tags[$parent][$i][6] надо заменить на $tags[$parent][$i][4].
Ага исправил - оценка заработала.

Цитата:first_parent равно нулю только для родительских комментариев, все последующие в ветке должны иметь там id родительского комментария.
Ага, значит где то я ошибку допустил, не подскажете куда копать? )))
21.07.2012 17:09:41
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #38
RE: Построение дерева иерархии или дерева комментариев
Вот, судя по исходному коду Вашей беседки, на данный момент ошибка исправлена. Удалите все тестовые сообщения и попробуйте набить новых десяточек.

По поводу аватарок тоже разобрался.
Для того чтобы аватарки выводились внутри нашей функции построения дерева комментариев, надо объявить массив с аватарками глобальным.

Просто добавьте после global $tags; еще одну строчку - global $ava_user;
21.07.2012 17:16:15
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #39
RE: Построение дерева иерархии или дерева комментариев
(21.07.2012 17:16:15)Admin писал(а):  Вот, судя по исходному коду Вашей беседки, на данный момент ошибка исправлена. Удалите все тестовые сообщения и попробуйте набить новых десяточек.

По поводу аватарок тоже разобрался.
Для того чтобы аватарки выводились внутри нашей функции построения дерева комментариев, надо объявить массив с аватарками глобальным.

Просто добавьте после global $tags; еще одну строчку - global $ava_user;
Окей, ава заработала!!!! Сейчас полностью очищу базу и заново набью сообщения в разных интерпретациях!

Теперь не выводятся 3 и последующие дочерние комментарии, в базе parent_id и first_parent почему то имеют одинаковые значения!!! ((
... наследуют оба id номер родительского.
(Последний раз сообщение было отредактировано 21.07.2012 в 17:31:01, отредактировал пользователь Incognito.)
21.07.2012 17:21:52
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #40
RE: Построение дерева иерархии или дерева комментариев
Уже вижу у Вас ошибку.
Где-то в коде кнопки или ранее перепутано $tags[$parent][$i][4] и что-то другое.

Вернитесь к 28 сообщению данной темы - http://usefulscript.ru/forum/showthread....532#pid532 и проверьте так ли у Вас.
21.07.2012 17:31:17
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru