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

Форум MySQL

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

 

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

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

тема: Вывод по интервалу дат
 
 автор: maxfade   (16.05.2008 в 10:06)   письмо автору
 
 

Доброе утро. Код впринципе работает, но есть маленькое но.

Структура таблицы:


CREATE TABLE `gtt` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `class` char(1) NOT NULL,
  `putdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `cldate` datetime DEFAULT NULL,
  `restdate` datetime DEFAULT NULL,
  `cl_resdate` datetime DEFAULT NULL,
  `tt` varchar(8) NOT NULL,
  `object` varchar(255) NOT NULL,
  `object_type` varchar(255) NOT NULL,
  `opis` text NOT NULL,
  `coment` text NOT NULL,
  `cl_text` text NOT NULL,
  `res_text` text NOT NULL,
  `res_cl_text` text NOT NULL,
  `hide` enum('show','hide') NOT NULL DEFAULT 'show',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=38 ;


Собственно ведется поиск по "putdate".

Запрос такой:


$query = "SELECT id,
              class,
             DATE_FORMAT(putdate,'%d.%m.%Y %H:%i') as putdate_format,
             DATE_FORMAT(cldate,'%d.%m.%Y %H:%i') as cldate_format,
             DATE_FORMAT(restdate,'%d.%m.%Y %H:%i') as restdate_format,
             DATE_FORMAT(cl_resdate,'%d.%m.%Y %H:%i') as cl_resdate_format,
             tt,
            object,
            object_type,
            opis,
            coment,
            cl_text,
            res_text,
            hide
              FROM gtt
            WHERE putdate >= '$_GET[date1]' AND putdate <= '$_GET[date2]'            ORDER BY putdate
            ;";



Проблема в следующем.
При вводе в $_GET[date2] выводятся все материалы с датой на один день меньше. Т.е. материалы с текущей датой не выводяться...

Как можно решить данную проблему?

Заранее спасибо.

   
 
 автор: Richard Ferlow   (16.05.2008 в 10:14)   письмо автору
 
   для: maxfade   (16.05.2008 в 10:06)
 

У меня все даты в UNIX формате хранятся. конечно на перевод нужно дописывать функции, но зато удобно.

   
 
 автор: maxfade   (16.05.2008 в 13:05)   письмо автору
 
   для: Richard Ferlow   (16.05.2008 в 10:14)
 

А если применительно моего случая.

Есть решения данной проблемы?

   
 
 автор: Richard Ferlow   (16.05.2008 в 15:10)   письмо автору
 
   для: maxfade   (16.05.2008 в 13:05)
 

Вероятнее всего, Вы в GET(что тут опасно я думаю) передаете дату вида 2008-05-16, а выборка производится в таком случае до 2008-05-16 00:00:00 - таким образом берите на день больше либо добавляйте 23:59:59

   
 
 автор: maxfade   (19.05.2008 в 09:24)   письмо автору
 
   для: Richard Ferlow   (16.05.2008 в 15:10)
 

Спасибо за ответ, уже сам додумался до добавления 23:59:59 :)

Кстати, а как можно ограничить поиск по определенному количеству символов в строке?

   
Rambler's Top100
вверх

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