Выборка по времени в smf_messages

Автор kak2z, 06 ноября 2012, 09:23:05

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kak2z

Ну собственно хочу сделать на форуме Темы за: сегодня|вчера|позавчера
Что бы выводило просто весь список тем за определенный день.. .но запись в таблице smf_messages в поле poster_time меня затормозила... в чем там время указано и как по нему делать выборку только допустим "за вчера"??
Спасибо...
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

timestamp это, обычно воспринимается как число секунд от сотворения unix
http://dev.mysql.com/doc/refman/5.0/en/datetime.html
http://www.php.net/manual/en/function.time.php
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Цитата: maestrosite.ru от 06 ноября 2012, 09:46:57timestamp
спасибо... блин неудобно... придется вычислять начало дня и конец дня... если бы была записть вроде 201211052240 было бы проще))
Спасибо))
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Сапожник

Цитата: kak2z от 06 ноября 2012, 09:52:38
спасибо... блин неудобно... придется вычислять начало дня и конец дня... если бы была записть вроде 201211052240 было бы проще))
Спасибо))
Не проблема, используй:
mktime(hour, min, sec, month, day, yyyy)
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

kak2z

Цитата: Сапожник от 06 ноября 2012, 10:33:17
Не проблема, используй:
mktime(hour, min, sec, month, day, yyyy)

да мне же надо в базе выборку делать.. надо вычислять начало и конец прошлого дня.. преобразовывать в timespamp.. а потом выборку делать..  от значения1 до значения2.... хотя надо почитать... по идеи в мускуле должны быть функции работы с timespamp...
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Сапожник

Могу ошибаться (не шибко спец :D ), но ты ж запрос готовишь не напрямую в мускуле, а у себя?

$time_start = mktime(0, 0, 0, month_start, day_start, yyyy_start);
$time_end = mktime(23, 59, 59, month_end, day_end, yyyy_end);
$query = "SELECT *  FROM `smf_messages` WHERE `poster_time` >= " . "$time_start" . " AND `poster_time` <= " . "$time_start";


Сейчас придут гуру и скажут, что все намного проще ;)
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

maestrosite.ru

#6
Не хотите вычислять каждый запрос, добавляйте индекс в таблицу и при создании сообщения заносите туда 2. Кроном в 00 уменьшайте на единицу. И выборку делайте =1 или =2 - вчера и сегодня соответственно.

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

PS $time_end = $time_start + 60 * 60 * 24;

upd но в этом случае вчера и сегодня - это понятия сервера, а не пользователя
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Цитата: maestrosite.ru от 06 ноября 2012, 12:54:33Или же идентификаторы сообщений с этими метками в отдельную таблицу, чтобы основную не раздувать. Но это зависит от того, как именно вы хотите использовать выборку.

Ну вообще нужна конструкция выборки из двух таблиц одновременно... только с временным интервалом.. и всего то.. не думал что это сложно будет.. выборку топиков уже сделал.. а вот по времени не получается пока..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)