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 :: Определение времени последнего сообщения в базе

 PHP.SU

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


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

> Описание: Что-то пошло не так...
ninjajnin
Отправлено: 23 Октября, 2015 - 10:21:29
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Сент. 2015  


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




Вот пытаюсь определить самую "свежую" дату среди отправленных сообщений от одного пользователя (по его ip):

Для примера и наглядности используем ip 127.0.0.1

PHP:
скопировать код в буфер обмена
  1. $resultx = mysql_query("SELECT *, MAX(date) AS `date` FROM messages WHERE `ip` = '127.0.0.1' ") or die (mysql_error()) ;
  2.  
  3. while($data = mysql_fetch_array($resultx)) {
  4.         print $data[3]." - "  ; // ip пользователя
  5.         print date("Y-m-d H:i:s", strtotime($data[4]))."<br>" ;
  6.         }


При таком раскладе я получаю самую первую (старую) дату в таблице... в чем может быть проблема? Я как-то не правильно использую функцию MAX() ?
Тип данных даты timestamp

При запросе:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT MAX(`date`) FROM `messages` WHERE ip = '127.0.0.1'


Получаю:
- 1970-01-01 03:00:00

И еще сразу вопрос, в итоге я хочу сравнивать последнюю дату в базе с текущей, и выбор для этого дела цикла while правильно? Ну т.е. на сколько это актуально?

(Отредактировано автором: 23 Октября, 2015 - 11:05:28)

 
 Top
Faraon-san
Отправлено: 23 Октября, 2015 - 11:05:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013  


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




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `messages` WHERE `ip` = '127.0.0.1' ORDER BY `date` DESC LIMIT 1

Зачем дату сравнивать с текущей?

(Отредактировано автором: 23 Октября, 2015 - 11:08:33)

 
 Top
ninjajnin
Отправлено: 23 Октября, 2015 - 11:07:37
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Сент. 2015  


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




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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB