
19.12.2003, 23:06
|
|
Регистрация: Feb 2002
Адрес: Саратов
Сообщений: 93
|
Сорри за долгое молчание.
Опишу весь алгоритм, опуская мелкие подробности.
Юзер, желая начать новую тему, заполняет форму, в которой указывает свой логин, тему и сообщение. Далее тема заносится в таблицу subjects, где ей присваивается id(auto_increment). Далее select max(id) from subjects - и мы знаем номер этой темы. После этого в таблицу messages заносятся логин, дата, сообщение и этот самый id (но уже не auto_increment, а просто).
Теперь другие юзеры наполняют эту тему сообщениями. Они (сообщения) тоже заносятся в таблицу messages, но id у них у всех одинаковый - это id данной темы.
Далее начинаем просмотр форума. Снова select max(id) from subjects (можно использовать COUNT - сути не меняет). Мы узнали число тем в нашем форуме (допустим 5). Организуем цикл while ($x<=5). В этом цикле выбираем название темы из таблицы subjects, логины авторов и даты первого и последнего сообщения каждой темы - из таблицы messages where id=$x. В этом же цикле всю эту информацию выводим на экран.
Последний этап - юзер кликает понравившуюся тему. Ссылка отправляет нас на файл-обработчик и передает ему переменную id (номер темы). По этому номеру мы восстанавливаем название темы из таблицы subjects и выбираем все сообщения с этим номером id из таблицы messages (соответственно и логины и даты), сортируя их по датам. Выводим на экран.
Вроде бы все. Надеюсь теперь все стало ясно.
__________________
Funciona situando las manos bajo el secador
|