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

Сообщений: 311
У нас с: Nov 2014
Сообщение: #241
RE: Построение дерева иерархии или дерева комментариев
Да, в сделал для проверки на каждой страницы по 2 сообщения и 1 код работает нормально:
[Изображение: tid_135_output_coment.png]

При клике на 2 и 3 в адресной строке:
_http://autocad-problem.net/read/info-1?comment_list=2 (для ссылки 2)
_http://autocad-problem.net/read/info-1?comment_list=3 (для ссылки 3)

если в коде:
PHP код:
$res mysqli_query($db"SELECT * FROM comment WHERE theme_id='".$theme_id."' and moderation=1 ORDER BY id");
$count_list=floor((mysqli_num_rows($res)-1)/2)+1;

if (
is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if (
$_GET[comment_list]>$count_list$comment_list=$count_list;
    else 
$comment_list=$_GET[comment_list];
}
else 
$comment_list=1;
if (
$comment_list==0$comment_list=1;


$res mysqli_query($db"SELECT * FROM comment WHERE theme_id='".$theme_id."' and moderation=1 ORDER BY id LIMIT ".($comment_list*2-2).",2");
$number mysqli_num_rows($res); 

делаю разбивку на 2 сообщения по страницам, то 1 код отрабатывает нормально, переход по ссылкам работает для 2 и 3 и значения в адресной строке меняется, но с выводом проблемы, точнее ошибка 404, если делаю разбивку по 6 сообщений, то они появляются на 1 странице...
18.05.2015 23:48:40
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #242
RE: Построение дерева иерархии или дерева комментариев
Если ошибка 404, то скорее всего проблема в Вашем .htaccess. Точнее из-за присутствия GET переменной в URL, .htaccess делает редирект на несуществующую страничку или что-то в этом роде, т.к. добавление GET переменной в URL не должно вызывать 404 ошибку.

Похожий скрипт стоит и у нас на сайте на страничке Гостевой книги и работает нормально.
19.05.2015 00:00:54
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #243
RE: Построение дерева иерархии или дерева комментариев
Я вас понял, но в .htaccess все нормально, убрал все что было под подозрением.

Гляньте будьте добры, все коды может найдете, где накосячил или возможная ошибка.
1.
PHP код:
function col_pages($count$this) {
$j=0$out=""$td='<td width="35">';
if ((
$this-3)<1$i=1;
    else 
$i=$this-3;
if (
$i==1$i++;

if ((
$count-7)<$i$i=$count-7;
if (
$i<2$i=2;

if (
$this!=1$out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list=1">1</a></td>';
    else 
$out.=$td.'<b>[ 1 ]</b></td>';

if (
$i>2$out.=$td.'...</td>';

while (((
$i<=($this+3)) or ($j<7)) and ($i<$count)) {
if (
$i!==$this$out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$i.'">'.$i.'</a></td>';
    else 
$out.=$td.'<b>[ '.$i.' ]</b></td>';
$i++; $j++;
}
if (
$i<$count$out.=$td.'...</td>';
if (
$count>1) {
    if (
$count!=$this$out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$count.'">'.$count.'</a></td>';
    else 
$out.=$td.'<b>[ '.$count.' ]</b></td>';
}
return 
$out;


2.
PHP код:
$res mysqli_query($db"SELECT * FROM comment WHERE theme_id='".$theme_id."' and moderation=1 ORDER BY id");
$count_list=floor((mysqli_num_rows($res)-1)/2)+1;

if (
is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if (
$_GET[comment_list]>$count_list$comment_list=$count_list;
    else 
$comment_list=$_GET[comment_list];
}
else 
$comment_list=1;
if (
$comment_list==0$comment_list=1;


$res mysqli_query($db"SELECT * FROM comment WHERE theme_id='".$theme_id."' and moderation=1 ORDER BY id LIMIT ".($comment_list*2-2).",2");
$number mysqli_num_rows($res); 

3.
PHP код:
echo '<table border="0"><tr align="center"><td>Еще комментарии:</td>'.col_pages((int)$count_list, (int)$comment_list)."</tr></table>"

Все коды можете удалить, чтобы не занимать место, сам пока не пойму, но в старой форме работал вывод по ссылкам...

С уважением, Алексей
19.05.2015 00:11:14
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #244
RE: Построение дерева иерархии или дерева комментариев
P.S.: так и не получается Unknown, вроде все перепробовал, но не работает вывод для страниц [2] [3] и т.д. перекидывает на :
_http://autocad-problem.net/read/info-1?comment_list=2
_http://autocad-problem.net/read/info-1?comment_list=3

но не найдена страница...можеть быть проблема в формировании ссылки в 1 коде:
href="'.$_SESSION[mess_url].'?comment_list=1"
href="'.$_SESSION[mess_url].'?comment_list='.$i.'"
href="'.$_SESSION[mess_url].'?comment_list='.$count.'"
19.05.2015 10:44:53
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #245
RE: Построение дерева иерархии или дерева комментариев
А что у Вас находится в $_SESSION[mess_url] и как выглядит URL странички, с которой осуществляется переход?
Думаю, что логичнее было бы использовать переменную $mess_url.

P.S. И приведенный Вами код у меня прекрасно работает.
19.05.2015 20:24:54
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #246
RE: Построение дерева иерархии или дерева комментариев
Здравствуйте, сделал как вы описали, но пока не решается...

1. URL странички, с которой осуществляется переход:
_http://autocad-problem.net/read/info-1.html

при клике на ссыдку [2] переход на URL:
_http://autocad-problem.net/read/info-1?comment_list=2
но страница не найдена...

2. В 1 коде заменил $_SESSION[mess_url] на $_SESSION[$mess_url], но не решает проблемы.

3. Может быть проблема в этой строчке,
$res = mysqli_query($db, "SELECT * FROM comment WHERE theme_id='".$theme_id."' and moderation=1 ORDER BY id");

Пробовал менять theme_id='".$theme_id."' на theme_id='".$_SESSION[$mess_url]."', но в этом случае нет вывода комментариев совсем...

Даже не знаю, в чем проблема, c htaccess все нормально, да и у вас работает, в чем проблема. Кстати у меня все коды находятся во 2 файле, т.е. там где осуществляется вывод формы.


P.S.: _http://autocad-problem.net/read/info-1?comment_list=2, может быть проблема, переход со страницы info-1.html на info-1?comment_list=2, которой не существует или неверно определяется...
(Последний раз сообщение было отредактировано 19.05.2015 в 22:42:42, отредактировал пользователь ale10ey.)
19.05.2015 22:34:29
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #247
RE: Построение дерева иерархии или дерева комментариев
Вот теперь проблема очевидна. Теряется расширение файла в ссылке (.html).

Попробуйте ?comment_list заменить на .html?comment_list (т.е. добавить .html к ссылке перед знаком вопроса).

P.S. Опять невнимательно читаете. Где Вы взяли $_SESSION[$mess_url]? Менять нужно $_SESSION[mess_url] на $mess_url целиком!
19.05.2015 22:59:56
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #248
RE: Построение дерева иерархии или дерева комментариев
Проверил, ошибка 404 нет, но теперь появляется Error 500 Scratch
Строчка URL перехода:
_http://autocad-problem.net/read/.html?comment_list=2

и 1 код:
function col_pages($count, $this) {
$j=0; $out=""; $td='<td width="35">';
if (($this-3)<1) $i=1;
else $i=$this-3;
if ($i==1) $i++;

if (($count-7)<$i) $i=$count-7;
if ($i<2) $i=2;

if ($this!=1) $out.=$td.'<a href="'.$mess_url.'.html?comment_list=1">1</a></td>';
else $out.=$td.'<b>[ 1 ]</b></td>';

if ($i>2) $out.=$td.'...</td>';

while ((($i<=($this+3)) or ($j<7)) and ($i<$count)) {
if ($i!==$this) $out.=$td.'<a href="'.$mess_url.'.html?comment_list='.$i.'">'.$i.'</a></td>';
else $out.=$td.'<b>[ '.$i.' ]</b></td>';
$i++; $j++;
}
if ($i<$count) $out.=$td.'...</td>';
if ($count>1) {
if ($count!=$this) $out.=$td.'<a href="'.$mess_url.'.html?comment_list='.$count.'">'.$count.'</a></td>';
else $out.=$td.'<b>[ '.$count.' ]</b></td>';
}
return $out;
}
19.05.2015 23:11:42
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #249
RE: Построение дерева иерархии или дерева комментариев
Продолжаем. А что у Вас в переменной $mess_url? Почему она пустая?

В данной переменной должно содержаться имя файла: $mess_url=basename($_SERVER['SCRIPT_FILENAME']);
19.05.2015 23:20:31
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #250
RE: Построение дерева иерархии или дерева комментариев
(19.05.2015 23:20:31)Admin писал(а):  Продолжаем. А что у Вас в переменной $mess_url? Почему она пустая?

В данной переменной должно содержаться имя файла: $mess_url=basename($_SERVER['SCRIPT_FILENAME']);

Пробовал так:
$mess_url=mysqli_real_escape_string($db,basename($_SERVER['REQUEST_URI']));

не работает...

(19.05.2015 23:32:20)ale10ey писал(а):  
(19.05.2015 23:20:31)Admin писал(а):  Продолжаем. А что у Вас в переменной $mess_url? Почему она пустая?

В данной переменной должно содержаться имя файла: $mess_url=basename($_SERVER['SCRIPT_FILENAME']);

Пробовал так:
$mess_url=mysqli_real_escape_string($db,basename($_SERVER['REQUEST_URI']));

не работает...

3 строчки кода удалил, так как у меня статичные html страницы для инфы.

$res=mysqli_query($db,"SELECT id FROM таблица WHERE file_name='".$mess_url."'");
$res=mysqli_fetch_array($res);
$theme_id=$res["id"];
(Последний раз сообщение было отредактировано 19.05.2015 в 23:36:20, отредактировал пользователь ale10ey.)
19.05.2015 23:32:20
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


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



Mail.ru LiveInternet

© Copyright 2011-2016 by UsefulScript.ru