|
|
|
| Доброй ночи. Помогите с запросом.
Есть табличка :
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/), но толком так ничего и не поняла. | |
|
|
|
|
|
|
|
для: Nina
(25.01.2012 в 01:35)
| |
SELECT COUNT(*) FROM tbl WHERE CURDATE() >= `date_from` AND CURDATE() <= `date_to`
|
проверте | |
|
|
|
|
|
|
|
для: Valick
(25.01.2012 в 10:37)
| | Ой, спасибочки. Вроде работает! | |
|
|
|
|
|
|
|
для: Valick
(25.01.2012 в 10:37)
| | Valick, а как можно вывести два ближайших события из календарика? | |
|
|
|
|
|
|
|
для: Nina
(26.01.2012 в 11:47)
| | SELECT * FROM tbl WHERE NOW() < `caldate` ORDER BY `caldate` DESC LIMIT 2 | |
|
|
|
|
|
|
|
для: Valick
(26.01.2012 в 13:01)
| | Да, но дата здесь не точная, а указан промежуток (от и до) | |
|
|
|
|
|
|
|
для: Nina
(26.01.2012 в 14:45)
| | немного непонятен вопрос, два ближайших события относительно чего?
два ближайших начала относительно конца промежутка?
я привел запрос на два ближайших начала относительно текущей даты
или нужно ограничить эту выборку конечной датой?
чтобы если в промежутке от сегодня до "тогда" небыло ни одного начала, то запрос возвращался пустым? | |
|
|
|
|
|
|
|
для: Valick
(26.01.2012 в 14:53)
| | В базе есть дата начала date_from и дата завершения события date_to
На странице уже есть id текущего события и его дата начала и завершения
Надо вывести 2 события слева от него и 2 справа
Слева события, произошедшие ранее текущего или в ту же дату.
Справа события, будущие относительно текущего. | |
|
|
|
|
|
|
|
для: Nina
(26.01.2012 в 17:25)
| | у вас что события не перекрываются? | |
|
|
|
|
|
|
|
для: Valick
(26.01.2012 в 20:31)
| | Конечно же пересекаются! | |
|
|
|
|
|
|
|
для: mihdan
(26.01.2012 в 23:14)
| | телепат? :)
На странице уже есть id текущего события
текущего и текущих, это разные вещи
_
если речь идет о каком-то конкретном событии выбранному по какому-то условию, то можно относительно него сделать два предыдущих события, и два последующих
опять же с оговоркой, выводимые последующие события могут начинаться до окончания текущего или нет
в общем нюансов много, и нужно определиться относительно чего делать выборку
я уж молчу если текущих событий несколько (тут с одним-то проблем выше крыши)
и такие нюансы как событие начавшееся после начала текущего и окончившееся до текущего момента, что с такими делать?
лично я бы лично не заморачивался и сделал бы выборку "за месяц" серединой которого было бы текущее число
и оформил бы в виде графических полос со ссылками на конкретные события | |
|
|
|