Как сделать выборку самых популярных файлов за неделю?

  • Автор темы vladZzz
  • Дата начала

vladZzz

Guest
Как сделать выборку самых популярных файлов за неделю?

Люди! Помогите, мне нужно сделать выборку самых популярных файлов за НЕДЕЛЮ. как это можно сделать?
 

Кром

Новичок
Покажи структуру таблиц, опиши их. И покажи как ты пытался решить этот вопрос.
 

vladZzz

Guest
поля по которым производится выборка:

количество скачаиваний downloads
и
дата добавления файла addtime (в формате datetime)

я пытался делать это сравнением времени в формате timestamp.
 

Кром

Новичок
Еще раз. По буквам.
Покажи структру таблиц.
Затем опиши необходимые поля.
Затем покажи свой sql запрос.
Понятно?
 

vladZzz

Guest
id int(6) Нет auto_increment
author varchar(20) Нет
title varchar(150) Нет
text text Нет
dir varchar(100) Нет
comments int(11) Нет 0
size varchar(100) Нет 0
time datetime Нет 0000-00-00 00:00:00
type varchar(50) Нет
downloads int(11) Нет 0

Мне нужно что-то вроде:

mysql_query("SELECT * FROM files ORDER BY downloads WHERE time<=недели DESC LIMIT 8")

т.е. смысл в том, чтобы вывести самые СКАЧИВАЕМЫЕ файлы за НЕДЕЛЮ ... вот так ...

Надеюсь, я правильно в этот раз написал :)
 

Кром

Новичок
Понятно.
Тебе нужен оператор DATE_FORMAT

http://dev.mysql.com/doc/mysql/ru/date-and-time-functions.html
И запрос типа:
SELECT * FROM `files` WHERE DATE_FORMAT(`time`,'%Y') = 2005 AND DATE_FORMAT(`time`,'%U') = 3 ORDER BY `downloads`

Соответственно в php предварительно вычисляешь, какой тебе нужен год и какой номер недели.
 

vladZzz

Guest
а если мне нужно чтобы автоматически вычислалась неделя?
 

Кром

Новичок
Это не имеет значения. Вычисляй автоматически. Функция: [m]date[/m]
 

vladZzz

Guest
Спасибо!

-~{}~ 22.03.05 18:16:

а как сделать за 2 недели? =)
 

SelenIT

IT-лунатик :)
SELECT * FROM `files` WHERE `time` > DATE_SUB(CURDATE(), INTERVAL 14 DAY) ORDER BY downloads DESC?

Собственно, так можно и за неделю посчитать (если под неделей подразумеваются 7 последних суток, а не период с понедельника по воскресенье).
 
Сверху