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

Форум MySQL

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

 

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

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

тема: Лестничный вывод сообщений из базы данных на форуме...
 
 автор: KIM   (06.02.2007 в 06:44)   письмо автору
 
 

Прошу объяснить или хотя бы дать ссылку на исходник... Пытался сам додуматься, кучу бумаг исписал, но логический процессор в моей голове не включается, что-то мешает, или я просто очень долгое время не думал... =)

Я хочу написать форум для своего сайта. Всё сделал, и тут одна проблема появилась. Не могу додуматься до алгаритма сортировки данных, которые выводятся из базы данных. Надо чтобы сообщения-ответы топиков сортировались как на этом форуме (ответы на сообщения немного смещены правее)

   
 
 автор: elrevin   (06.02.2007 в 07:52)   письмо автору
 
   для: KIM   (06.02.2007 в 06:44)
 

тут дело в структуре таблицы ответов:
ansvers:
a_id - id ответа (первичный ключ)
t_id - id темы
a_text - текст ответа
a_parrent - сдесь или 0 или id ответа ответом на который я вляется этот ответ :) , если 0
.... - тут авторы заголовки и т.д.

теперь функция вывода ответов:

<?
function GetAnsver($ParrentId$Theme$In)
{
  
$QR=mysql_query("select * from ansvers where a_parrent=$ParrentId and t_id=$Theme");
  while (
$Row=mysql_fetch_array($QR))
  {
      
$Text=$Row['a_text'];
      echo 
"<table width=100%>
                    <tr>
                        <td colspan=2>
                                // Сюда инфу об авторе пишем
                        </td>
                        <td style='width:
$In'>
                                // Это отступ
                        </td>
                        <td style='width:
$In'>
                                
$Text
                        </td>
                    </tr>
                   </table> "
;
      
GetAnsver($Row['a_id'], $Theme$In+10);
  }
}
?>


теперь вызываем GetAnsver:


<?
  
echo "<table width=100%>".GetAnsver(0,$Theme,0)."</table>";
?>

Вот примерно так делай :)

   
 
 автор: KIM   (06.02.2007 в 09:17)   письмо автору
 
   для: elrevin   (06.02.2007 в 07:52)
 

Спсибо! Я оказывается мыслил в правлильном направлении! Но я не знал что функция сама с собой может работать...

   
Rambler's Top100
вверх

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