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

Форум MySQL

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

 

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

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

тема: Организация ответов на определенные сообщения
 
 автор: sidPR   (17.01.2007 в 22:54)   письмо автору
 
 

как в вашем форуме хотелось бы узнать как в базе хранятся сообщения и общие и на определенное сообщение по розь или в месте както? просто сам захотел сделать также чтоб смещялось в право при ответе на сообщение.. что не изобретать велосипед решил посоветоватся у вас! заранее спасибо!

   
 
 автор: cheops   (18.01.2007 в 00:36)   письмо автору
 
   для: sidPR   (17.01.2007 в 22:54)
 

Все сообщения хранятся в одной таблицы
id_post, ..., id_parent, id_theme

id_post - первичный ключ сообщения
id_parent - ключ родительского сообщения (для самого первого в теме - 0)
id_theme - первичный ключ темы

При открытии темы выбирается первое сообщение, т.е. то, которое имеется id_parent=0, допустим имеет это сообщение id_post = 45. Выбираем все сообщения с id_parent = 45 и выводим их с отступом. Для каждого из сообщений повторяем процедуру. В результате осуществляется рекурсивный спуск до тех пор, пока не в теме не исчерпаются сообщения.

   
 
 автор: sidPR   (18.01.2007 в 01:06)   письмо автору
 
   для: cheops   (18.01.2007 в 00:36)
 

Спасибо уяснил

   
 
 автор: LuxeMate   (18.01.2007 в 01:20)   письмо автору
 
   для: sidPR   (18.01.2007 в 01:06)
 

А до меня вот не дошло))

   
 
 автор: sidPR   (18.01.2007 в 01:37)   письмо автору
 
   для: LuxeMate   (18.01.2007 в 01:20)
 

чето не могу сореентироватся сделал так
поля:

id - номер коментария
id_news - номер новости к которой идут коментарии
id_otv - сдесь номер id сообщения на который дают ответ
date - дата
name - имя
msg - сообщение
по дефолту id_otv = 0 (если не отвечали а просто добавили комент)
делаю так


if($com['id_otv']!=0){
      $w=$w-5;
      }elseif ($com['id_otv']==0)
      {
       $w='100';
      }

ну думаецца не совсем правильно $w - ширина в процентах таблици сообщения

   
 
 автор: cheops   (18.01.2007 в 01:40)   письмо автору
 
   для: sidPR   (18.01.2007 в 01:37)
 

А вы не вычитайте, а прибавляйте проценты левого столбца, который делает отступ от 0 до 50, после того, как достигните 50% - уменьшайте процент прибавления с таким расчётом, чтобы 100% никогда не достичь.

   
 
 автор: sidPR   (18.01.2007 в 01:43)   письмо автору
 
   для: cheops   (18.01.2007 в 01:40)
 


while($com = mysql_fetch_array($result)) 
  { 
  
      if($com['id_otv']!=0){
      $w=$w-5;
      }elseif ($com['id_otv']==0)
      {
       $w='100';
      }
 
  echo "<table id='$com[id]' border=0 cellpadding=0 cellspacing=0 width=$w% height=50>
<tr>
<td  width='50%' height=10>Имя:<b>$com[name]</b></td>
<td  width='50%' height=10>
<p align='right' class='date'>$com[date]</td>
</tr>
<tr>
<td valign='top' style='border-top:#D74D22 solid 1px;PADDING-BOTTOM: 5px;PADDING-TOP: 5px; PADDING-RIGHT: 5px;PADDING-LEFT: 10px;' width='100%' bgcolor='#A90303' colspan='2'>$com[msg]</td>
</tr>
</table>
<table border='0' cellpadding='0' cellspacing='0'  height='34' id='menu'>  
    <tr>
        <td valign='top'>
            <a href='#' onclick=\"alert('Ответы временно заблокированны')\" class='otvet' onmouseover=\"this.style.background='#790003'\" onmouseout=\"this.style.background='#A90303'\">Ответить</a>
        </td>
    </tr>
</table>
";
  
  }


я немного не понял к чему тут прибовлять ?

   
 
 автор: sidPR   (18.01.2007 в 01:56)   письмо автору
 
   для: sidPR   (18.01.2007 в 01:43)
 

Впринцепе со смещением все пашет ток с условиями я не могу разобратся так чтобы если Id=3 и все ответы а тоесть 'id_otv' тоже равно 3 к примеру их 5 сообщений чтоб они шли ровненько под id=3 а получается лесенкой ... =\ чето упустил

   
 
 автор: sidPR   (18.01.2007 в 13:37)   письмо автору
 
   для: sidPR   (18.01.2007 в 01:56)
 

еще нюанс ведь если отвечают на определенный комент этот ответ располагается непосредственно под тем на который отвечали правильно же?

   
 
 автор: sidPR   (18.01.2007 в 16:59)   письмо автору
 
   для: sidPR   (18.01.2007 в 13:37)
 

надо както сделать чтоб если в поле 'id_otv' не ноль а Id комента то вставлять это со сдвигом под это сообщение а тоесть Id которого указан в поле 'id_otv' .... как сделать это ума не приложу ... а несколько запросов не хочется делать :( ? подскажите пожалуйста как это можно организовать

   
 
 автор: Trianon   (19.01.2007 в 12:50)   письмо автору
 
   для: sidPR   (18.01.2007 в 13:37)
 

только если это первый ответ на коммент. Второй удет расположен под деревом первого ответа, третий - под деревом второго и т.д.

   
 
 автор: sidPR   (19.01.2007 в 16:34)   письмо автору
 
   для: Trianon   (19.01.2007 в 12:50)
 

помогите с организацией вывода ...

   
 
 автор: Trianon   (19.01.2007 в 17:30)   письмо автору
 
   для: sidPR   (19.01.2007 в 16:34)
 

Чем Вас не устраивает то,как реализован вывод в этом форуме? Реализация лежит в разделе downloads.

   
 
 автор: sidPR   (19.01.2007 в 23:50)   письмо автору
 
   для: Trianon   (19.01.2007 в 17:30)
 

Я просто хочу чтоб при ответе на какое либо сообщение ... оно распологалось не посредственно под ним...

   
Rambler's Top100
вверх

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