Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Премодерация сообщений 
:(
    Опции темы
console
Дата 15.12.2007, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

Репутация: 2
Всего: 3



Необходимо разработать простенький форум для сайта.

Код

CREATE TABLE `comments` (
  `comment_id` bigint(20) unsigned NOT NULL,
  `page_id` bigint(20) unsigned NOT NULL,
  `user_id` bigint(20) unsigned NOT NULL,
  `post_date` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
  `comment_value` text character set utf8 NOT NULL,
  `is_approved` varchar(1) default '0',
  PRIMARY KEY  (`comment_id`)
)


Комментарии должен одобрять модератор. Допустим, напишу функцию, которая будет изменять значение поля is_approved с нуля на единицу, как сделать так, чтобы дата post_date не обновлялась на текущую? Или проще сделать текстовое поле вместо TIMESTAMP, и записывать туда значение time() ?


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 15.12.2007, 00:19 (ссылка) |   (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



а что - кроме текстовых полей и TIMESTAMP в mysql больше нет типов полей для даты?

и зачем писать on update CURRENT_TIMESTAMP, если не нужен CURRENT_TIMESTAMP on update?
PM   Вверх
skyboy
Дата 15.12.2007, 02:13 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



перейди от конструкции 
Цитата(console @  14.12.2007,  23:15 Найти цитируемый пост)
Код

on update CURRENT_TIMESTAMP

к триггеру, который будет проверять: если при update меняется is_approved с 0 на 1, то post_date не меняем. Иначе - меняем.

Добавлено через 52 секунды
Цитата(skyboy @  15.12.2007,  01:13 Найти цитируемый пост)
триггеру

триггер либо на on before update, либо на on after update smile
PM MAIL   Вверх
Feldmarschall
Дата 15.12.2007, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



skyboy, триггеры, конечно, хорошая вещь, но в данном случае это явно лишнее =)
во-первых, в данном случае вообще не требуется менять значение поля автоматом.
во-вторых, сама функционалность поля timestamp и была придумана, чтобы эмулировать триггер при работе с датой.
а в данном случае timestamp - явно избыточно.

PM   Вверх
MoLeX
Дата 15.12.2007, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Feldmarschall @  15.12.2007,  00:19 Найти цитируемый пост)
и зачем писать on update CURRENT_TIMESTAMP, если не нужен CURRENT_TIMESTAMP on update? 

согласен, зачем?  smile 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.