Общие > Базы данных

Создание рейтинга с периодом времени.

(1/1)

Craze:
Народ, помогите. Нужно сделать рейтинг консультантов по колличеству ответов, но чтобы он составлялся с периодом в 14 дней, а потом обнулялся. Т.е. люди отвечают 14 дней, формируется рейтинг, а через 14 дней все с начала. Главная проблема, как отобразить ответы за 14 дней? На 1 день я делаю так:

$r = mysql_query("select count(*),consultant_id from answers  where answer_date like \'".date("Y-m-d")."%\' group by consultant_id limit 20");
echo mysql_error();
$shown = mysql_num_rows($r);
$rating = array();
$and  = "";
while($q = mysql_fetch_array($r)) {
  $rating[$q[1]] = $q[0];
  $and = $and." and id != ".$q[1];
}
arsort($rating);

$max_id_day = array_pop(array_keys($rating));
$max_day = $rating[$max_id_day];

Главная фишка тут вот в чем where answer_date like \'".date("Y-m-d")."%\'
А как вот тут ставить 14 дней лимита не знаю! Подскажите, если можете.

Меняздесьдавнонет:
а почему вопрос задан в форуме по пхп, а не по мускулю?
Нет, можно, конечно,  подставить в функцию date, которую ты используешь второй аргумент - результат работы mktime(), но правильнее будет сделать все средствами mysql
Вот, настоятельно рекомендую к прочтению:
http://www.mysql.com/doc/ru/Date_and_time_functions.html

и выкини на помойку этот уродский лайк.
операторами СРАВНЕНИЯ являются знак БОЛЬШЕ > и МЕНЬШЕ < - вот их и надо использовать.

Craze:
Да, спасибо. Там есть пример на 30 дней, его можно и в 14 переработать. Спасибо, буду пробовать.

Craze:
Вот только интересно, там есть две даты - сегодняшняя и какая-то вторая
 mysql> SELECT something FROM tbl_name
        WHERE TO_DAYS(NOW()) - TO_DAYS(date_col)

Меняздесьдавнонет:
"какая-то вторая" - это и есть твое поле с датой!

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии