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
Форумы портала PHP.SU :: Версия для печати :: Определение времени последнего сообщения в базе
Форумы портала PHP.SU » » Вопросы новичков » Определение времени последнего сообщения в базе

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

1. ninjajnin - 23 Октября, 2015 - 10:21:29 - перейти к сообщению
Вот пытаюсь определить самую "свежую" дату среди отправленных сообщений от одного пользователя (по его 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 правильно? Ну т.е. на сколько это актуально?
2. Faraon-san - 23 Октября, 2015 - 11:05:21 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `messages` WHERE `ip` = '127.0.0.1' ORDER BY `date` DESC LIMIT 1

Зачем дату сравнивать с текущей?
3. ninjajnin - 23 Октября, 2015 - 11:07:37 - перейти к сообщению
Спасибо! Действительно, все просто.

 

Powered by ExBB FM 1.0 RC1