19.09.2019, 06:48 [+3 UTC]
в нашей команде: 3 829 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
12.09.2019, 08:17

Последний вопрос:
19.09.2019, 06:23
Всего: 150340

Последний ответ:
18.09.2019, 16:50
Всего: 259024

Последняя рассылка:
19.09.2019, 00:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
13.11.2011, 14:23 »
Сергей Вячеславович Габышев
Спасибо... [вопрос № 184411, ответ № 268708]
Наши встречи:
ID: 851

РАЗДЕЛ • PHP / Perl / Python

Создание программ на языках PHP, Perl и Python.

[администратор рассылки: Коцюрбенко Алексей Владимирович (Модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 69
Асмик Гаряка
Статус: Советник
Рейтинг: 0
Хватов Сергей
Статус: Академик
Рейтинг: 0

Перейти к консультации №:
 

Консультация онлайн # 69879
Раздел: • PHP / Perl / Python
Автор вопроса: Бобровский Сергей Сергеевич
Отправлена: 07.01.2007, 16:03
Поступило ответов: 1

Здравствуйте, эксперты! Поздравляю с праздниками!
Есть сайт с картинками для мобильников (бесплатные). Есть в нём раздел top (популярные). Необходимо сделать так, чтобы можно было смотреть популярные картинки например "за сутки", "за неделю", "за месяц", "за всё время". В настоящий момент там просто популярные картинки по кол-ву загрузок, т.е. "за всё время". Вот как это осуществить? Была такая мысль, сделать несколько полей (соответственно day week month total), инкрементировать их на каждой загрузке и просто обнулять посредством cron каждый день, неделю, месяц соответственно. Но это меня не устраивает. Хочу сделать так, подобно http://browse.deviantart.com/?order=9

Состояние: Консультация закрыта

Ответ # 135195 от Загиров Рустам

Здравствуйте, Бобровский Сергей Сергеевич!
Есть 2 варианта решения вашей задачи:
1) Это использование дополнительной таблицы для ведения логов закачки картинок.
2) Это ваша мысль. Использовать дополнительные поля в таблице: day,week и т.д.
Я рассмотрю только первый способ, т.к. второй вы знаете
Первый способ полезен тем, что можно указывать любые промежутки времени для оценки количества скачивания, но минус состоит в том что размер этой таблицы будет не маленький, если с сайта скачивают много.
Таблицу логов(pict_log) делаем из 2 полей: pict_id(INT), stamp(timestamp). При каждом закачивании добавляем в таблицу запись.
Теперь можно будет составить запрос для популярных картинок за месяц:
SELECT *,COUNT(*) as kol FROM `pict_log`
WHERE stamp>(NOW() - INTERVAL 1 MONTH)
GROUP BY pict_id
ORDER BY kol DESC

за неделю:
SELECT *,COUNT(*) as kol FROM `pict_log`
WHERE stamp>(NOW() - INTERVAL 7 DAY)
GROUP BY pict_id
ORDER BY kol DESC

Также можно составить за более крупные периоды, например, за 2006 год:
SELECT *,COUNT(*) as kol FROM `pict_log`
WHERE YEAR(stamp)=2006
GROUP BY pict_id
ORDER BY kol DESC

За январь 2006:
SELECT *,COUNT(*) as kol FROM `pict_log`
WHERE YEAR(stamp)=2006 AND (MONTH(stamp)=01)
GROUP BY pict_id
ORDER BY kol DESC

В прикреплённом файле содержиться вырезка из справочника MySQL о функциях при работе с датой.


Консультировал: Загиров Рустам
Дата отправки: 07.01.2007, 18:51

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13960 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.77 от 31.05.2019
Версия JS: 1.34 | Версия CSS: 3.35