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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Структурный форум

Сообщения:  [1-10]    [11-20]   [21-30]  [31-34] 

 
 автор: cheops   (17.06.2006 в 16:33)   письмо автору
 
   для: SS   (17.06.2006 в 16:27)
 

Продолжение в теме http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=19375.

   
 
 автор: SS   (17.06.2006 в 16:27)   письмо автору
 
   для: cheops   (17.06.2006 в 16:22)
 

$idp я беру из адресной строки

$idp = $_GET['idp']; 

А как вызываю — не знаю. Я эту функцию у вас на форуме нашел. А как ее надо вызывать?
Я думал, за это отвечает строка функции

catalogs($idp);

Если это не так — то простите мою темноту и подскажите, как надо.

   
 
 автор: cheops   (17.06.2006 в 16:22)   письмо автору
 
   для: SS   (17.06.2006 в 15:30)
 

Это определение функции, а как вы её вызывате - в каком контексте, откуда берёте параметр $idp?

   
 
 автор: SS   (17.06.2006 в 15:30)   письмо автору
 
   для: cheops   (17.06.2006 в 13:21)
 

Вы шутите? Я уже два раза код приводил.
Вот весь кусок:

<?php 
function catalogs($idp

$result=mysql_query("SELECT * FROM posts WHERE  parent_post = $idp"); 
if(!
$result) exit(mysql_error()); 
    while(
$r=mysql_fetch_array($result)) 
    { 
        if(
$r['idp'] == $idp$style "<span style='margin-left : ".$r['level']."px; color: #CC0000'> ".$r['theme'].""
        else 
$style "<span style='margin-left : ".$r['level']."px; color: #FFFFFF'> <a href=read.htm?idt=".$r['idt']."&idp=".$r['idp'].">".$r['theme']."</a>"
        echo 
"<b>$style <font color='#996666'>— ".$r['author']."</b></font><font color='#808080'> — ".$r['time']."</font></span>"
            
catalogs($r['idp']); 
    } 

catalogs($idp); 

?> 

   
 
 автор: cheops   (17.06.2006 в 13:21)   письмо автору
 
   для: SS   (17.06.2006 в 11:31)
 

Как вы вызываете функцию catalogs()?

PS Давайте перебираться в новую тему.

   
 
 автор: SS   (17.06.2006 в 11:31)   письмо автору
 
   для: cheops   (17.06.2006 в 10:36)
 

Я не могу этого проверить, потому что, как писал выше:

2) показывает только посты, на которые есть ответы уровнем ниже, т.е. для такой схемы:

post1
.....post2
.....post3
..........post4
...............post5

если мы находимся на post1 - оттображается вся ветка, а если находимся на post2 - отображаются только:

..........post4
...............post5

   
 
 автор: cheops   (17.06.2006 в 10:36)   письмо автору
 
   для: SS   (17.06.2006 в 01:33)
 

Тогда вам следует передавать два параметра: первый тот, что есть, а второй номер активного поста. Использовать рабочий параметр рекурсивного спуска в качестве маркера активного поста нельзя, так как он постоянно меняется на каждой итерации рекурсии.

   
 
 автор: SS   (17.06.2006 в 01:33)   письмо автору
 
   для: cheops   (17.06.2006 в 00:47)
 

Активный пост — это то сообщение, которые мы смотрим в данный момент.
Т.е. интересует такой вид, как вот здесь: http://www.set.ru/srs/board/read.cgi?user=181&board=1&type=tree&start=0&topic=377&from=0&message=1956

   
 
 автор: cheops   (17.06.2006 в 00:47)   письмо автору
 
   для: SS   (16.06.2006 в 22:04)
 

Активный пост это кто и как он действует? Т.е. всё что выше его не выводится?

   
 
 автор: SS   (16.06.2006 в 22:04)   письмо автору
 
   для: cheops   (16.06.2006 в 15:20)
 

Хорошо. Как должна выглядеть функция? Сейчас она выглядит так:


<?php
function catalogs($idp

$result=mysql_query("SELECT * FROM posts WHERE  parent_post = $idp"); 
if(!
$result) exit(mysql_error()); 
    while(
$r=mysql_fetch_array($result)) 
    { 
        if(
$r['idp'] == $idp$style "<span style='margin-left : ".$r['level']."px; color: #CC0000'> ".$r['theme'].""
        else 
$style "<span style='margin-left : ".$r['level']."px; color: #FFFFFF'> <a href=read.htm?idt=".$r['idt']."&idp=".$r['idp'].">".$r['theme']."</a>"
        echo 
"<b>$style <font color='#996666'>— ".$r['author']."</b></font><font color='#808080'> — ".$r['time']."</font></span>";
            
catalogs($r['idp']); 
    } 

catalogs($idp); 
}
?>


в данный момент она:
1) не выделяет цветом активный пост;
2) показывает только посты, на которые есть ответы уровнем ниже, т.е. для такой схемы:

post1
.....post2
.....post3
..........post4
...............post5

если мы находимся на post1 - оттображается вся ветка, а если находимся на post2 - отображаются только:

..........post4
...............post5

   

Сообщения:  [1-10]    [11-20]   [21-30]  [31-34] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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