Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск по интервалу даты StartTime and EndTime

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
CTAPu4OK
Отправлено: 25 Февраля, 2012 - 20:16:25
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




Видел похожу тему, но ответов в ней нету) и как ни странно мне так же потребовалось организовать подобное) сейчас постараюсь объяснить что надо Улыбка

Имеем Таблицу Time в которой присутствуют поля StartTime и EndTime
при добавлении записи в таблицу заносятся два значения в unixtime формате
дата начала показа и дата завершения показа, дата начала показа не должна входить в интервал уже существующей записи начало - конец, так же и с датой конца, она не должна входить в дату начала показа другой записи.

запись 1
CODE (SQL):
скопировать код в буфер обмена
  1. StartTime 10
  2. EndTime   20

добавляем вторую запись
CODE (SQL):
скопировать код в буфер обмена
  1. StartTime  15
  2. EndTime   25


требуется запросом найти первую запись для того что бы изменить вторую запись в большую или меньшую сторону, т.е. из второй записи сделать
CODE (SQL):
скопировать код в буфер обмена
  1. StartTime 20
  2. EndTime  25


но так же если вдруг будет ранее добавленная запись

то вторая запись уже должна будет изменится следующим образом


Думаю такое лучше будет осуществить с помощью тригера, но как определить интервал чисел в записях ?

Заранее спасибо Улыбка
 
 Top
CTAPu4OK
Отправлено: 25 Февраля, 2012 - 22:44:06
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




Нашел в сети пример:
http://www[dot]iinuu[dot]ru/ru/it-guru/m[dot][dot][dot]nnyie-intervalyi

Если кому небудь нужно будет, написал триггер)
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. DELIMITER |
  3. CREATE TRIGGER updateTime BEFORE INSERT ON `time`
  4.   FOR EACH ROW BEGIN
  5.     SET NEW.line = GeomFromText(CONCAT('LineString(', NEW.StartDate, ' 0, ', NEW.EndDate, ' 0)'));
  6.   END;
  7. |
  8. DELIMITER ;
  9.  


Все работает на ура, но на сколько быстро работает еще не проверял =)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB