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

Форум MySQL

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

 

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

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

тема: Форум на php
 
 автор: holst   (21.09.2005 в 12:44)   письмо автору
 
 

Сразу к делу.
Есть две таблицы: forum_theme(id_theme,theme,id_user,date_create) и forum_message(id_message, id_theme, id_user, message, date_create). Связаны по индексу id_theme.

Форум уже почти готов. Только , если кто-то отвечает на тему, находящуюся где-нить в середине, то она там и остается. А как можно просто сделать, чтобы эта тема с последним по времени ответом перемещалась в самый вверх.

Я написал один очень длинный скрипт для этого в котором три вложенных цикла for (). Кажется он будет работать очень долго. Если надо то я его опишу словами (нет сейчас с собой исходника).

P.S. Скрипт работает правильно. Мне нужен другой вариант попроще!

   
 
 автор: glsv (Дизайнер)   (21.09.2005 в 13:34)
 
   для: holst   (21.09.2005 в 12:44)
 

>сли кто-то отвечает на тему, находящуюся где-нить в середине, то она там и остается. А как можно просто сделать, чтобы эта тема с последним по времени ответом перемещалась в самый вверх.

При добавлении нового сообщения в тему обновляйте поле date_create таблицы forum_theme. А при выводе списка тем сортируйте по этому полю.

   
 
 автор: holst   (22.09.2005 в 11:19)   письмо автору
 
   для: glsv (Дизайнер)   (21.09.2005 в 13:34)
 

Тогда еще один вопрос. А как время вставлять в MySql чтобы оно отображалось в формате дд.мм.гг чч.мм.сс. А то по умолчанию оно там хранится не поймешь в каком виде.

   
 
 автор: cheops   (22.09.2005 в 14:47)   письмо автору
 
   для: holst   (22.09.2005 в 11:19)
 

Время форматируется в операторе SELECT при помощи функции DATE_FORMAT(), подробнее о которой можно почитать в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5388

   
 
 автор: holst   (24.09.2005 в 13:43)   письмо автору
 
   для: cheops   (22.09.2005 в 14:47)
 

Я попробовал написать так как в той теме, но выдается ошибка запроса. Что делать? А дату функцией DATE_FORMAT() надо вставлять в поле типа "date" или нет???

Сделал по-другому и вроде все получилось:

$date_create=date("d.m.Y H.i.s");
@mysql_query("INSERT INTO forum_theme (id_user, theme, date_create) values('$id_user', '$theme', '$date_create')");

Только поле "date_create" имеет тип "varchar". Вот это меня и смущает. MySql может понять что это дата или нет? Мне просто интересно так вообще можно делать: сортировать по полю date_create если оно не "date"?

   
 
 автор: cheops   (24.09.2005 в 13:47)   письмо автору
 
   для: holst   (24.09.2005 в 13:43)
 

Нет DATE_FORMAT() работает только с полями, чей тип является временной с varchar - это не пройдёт. Т.е. добавление текущей даты должно происходить как обычно, через функцию NOW(), а саму дату форматировать уже на выходе
@mysql_query("INSERT INTO forum_theme (id_user, theme, date_create) values('$id_user', '$theme', NOW())");

   
 
 автор: HoLsT   (24.09.2005 в 13:57)   письмо автору
 
   для: cheops   (24.09.2005 в 13:47)
 

Как я понял функция NOW() возвращает время(или нет).Вставлять ее надо в поле типа "date".

А как форматировать дату на выходе?

   
 
 автор: cheops   (24.09.2005 в 21:04)   письмо автору
 
   для: HoLsT   (24.09.2005 в 13:57)
 

Да NOW() - возвращает время, автоматически подстраиваясь под временной тип. А вот уже форматировать на выходе любой временной тип можно при помощи функции DATE_FORMAT()
SELECT DATE_FORMAT(putdate,'%d.%m.%Y') AS putdate FROM tbl

В этом запросе в поле putdate будет дата в формате '24.09.2005'

   
Rambler's Top100
вверх

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