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

Форум MySQL

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

 

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

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

тема: Количество событий за текущий день
 
 автор: Nina   (25.01.2012 в 01:35)   письмо автору
 
 

Доброй ночи. Помогите с запросом.

Есть табличка :


CREATE TABLE IF NOT EXISTS `events` (
  `id_event` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(200) NOT NULL,
  `description` text NOT NULL,
  `date_from` date NOT NULL,
  `date_to` date NOT NULL,
  `place` varchar(100) NOT NULL,
  `is_vis` tinyint(1) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id_event`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='Календарь событий'


date_from - дата начала события
date_to - дата завершения события

Событие может длиться день или месяц или полгода. Как узнать количество событий за текущий день?

Прочла это (h**p://habrahabr_ru/blogs/mysql/106793/), но толком так ничего и не поняла.

  Ответить  
 
 автор: Valick   (25.01.2012 в 10:37)   письмо автору
 
   для: Nina   (25.01.2012 в 01:35)
 

SELECT COUNT(*) FROM tbl WHERE CURDATE() >= `date_from` AND CURDATE() <= `date_to`

проверте

  Ответить  
 
 автор: Nina   (25.01.2012 в 11:13)   письмо автору
 
   для: Valick   (25.01.2012 в 10:37)
 

Ой, спасибочки. Вроде работает!

  Ответить  
 
 автор: Nina   (26.01.2012 в 11:47)   письмо автору
 
   для: Valick   (25.01.2012 в 10:37)
 

Valick, а как можно вывести два ближайших события из календарика?

  Ответить  
 
 автор: Valick   (26.01.2012 в 13:01)   письмо автору
 
   для: Nina   (26.01.2012 в 11:47)
 

SELECT * FROM tbl WHERE NOW() < `caldate` ORDER BY `caldate` DESC LIMIT 2

  Ответить  
 
 автор: Nina   (26.01.2012 в 14:45)   письмо автору
 
   для: Valick   (26.01.2012 в 13:01)
 

Да, но дата здесь не точная, а указан промежуток (от и до)

  Ответить  
 
 автор: Valick   (26.01.2012 в 14:53)   письмо автору
 
   для: Nina   (26.01.2012 в 14:45)
 

немного непонятен вопрос, два ближайших события относительно чего?
два ближайших начала относительно конца промежутка?

я привел запрос на два ближайших начала относительно текущей даты
или нужно ограничить эту выборку конечной датой?
чтобы если в промежутке от сегодня до "тогда" небыло ни одного начала, то запрос возвращался пустым?

  Ответить  
 
 автор: Nina   (26.01.2012 в 17:25)   письмо автору
 
   для: Valick   (26.01.2012 в 14:53)
 

В базе есть дата начала date_from и дата завершения события date_to

На странице уже есть id текущего события и его дата начала и завершения

Надо вывести 2 события слева от него и 2 справа

Слева события, произошедшие ранее текущего или в ту же дату.
Справа события, будущие относительно текущего.

  Ответить  
 
 автор: Valick   (26.01.2012 в 20:31)   письмо автору
 
   для: Nina   (26.01.2012 в 17:25)
 

у вас что события не перекрываются?

  Ответить  
 
 автор: mihdan   (26.01.2012 в 23:14)   письмо автору
 
   для: Valick   (26.01.2012 в 20:31)
 

Конечно же пересекаются!

  Ответить  
 
 автор: Valick   (26.01.2012 в 23:33)   письмо автору
 
   для: mihdan   (26.01.2012 в 23:14)
 

телепат? :)
На странице уже есть id текущего события
текущего и текущих, это разные вещи
_
если речь идет о каком-то конкретном событии выбранному по какому-то условию, то можно относительно него сделать два предыдущих события, и два последующих
опять же с оговоркой, выводимые последующие события могут начинаться до окончания текущего или нет

в общем нюансов много, и нужно определиться относительно чего делать выборку
я уж молчу если текущих событий несколько (тут с одним-то проблем выше крыши)
и такие нюансы как событие начавшееся после начала текущего и окончившееся до текущего момента, что с такими делать?
лично я бы лично не заморачивался и сделал бы выборку "за месяц" серединой которого было бы текущее число
и оформил бы в виде графических полос со ссылками на конкретные события

  Ответить  
Rambler's Top100
вверх

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