Forum Webscript.Ru

Общие => Базы данных => Тема начата: Craze от 06 Апреля 2004, 21:43:12

Название: Создание рейтинга с периодом времени.
Отправлено: Craze от 06 Апреля 2004, 21:43:12
Народ, помогите. Нужно сделать рейтинг консультантов по колличеству ответов, но чтобы он составлялся с периодом в 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 дней лимита не знаю! Подскажите, если можете.
Название: Создание рейтинга с периодом времени.
Отправлено: Меняздесьдавнонет от 06 Апреля 2004, 22:16:14
а почему вопрос задан в форуме по пхп, а не по мускулю?
Нет, можно, конечно,  подставить в функцию date, которую ты используешь второй аргумент - результат работы mktime(), но правильнее будет сделать все средствами mysql
Вот, настоятельно рекомендую к прочтению:
http://www.mysql.com/doc/ru/Date_and_time_functions.html

и выкини на помойку этот уродский лайк.
операторами СРАВНЕНИЯ являются знак БОЛЬШЕ > и МЕНЬШЕ < - вот их и надо использовать.
Название: Создание рейтинга с периодом времени.
Отправлено: Craze от 06 Апреля 2004, 22:42:54
Да, спасибо. Там есть пример на 30 дней, его можно и в 14 переработать. Спасибо, буду пробовать.
Название: Создание рейтинга с периодом времени.
Отправлено: Craze от 06 Апреля 2004, 22:53:26
Вот только интересно, там есть две даты - сегодняшняя и какая-то вторая
 mysql> SELECT something FROM tbl_name
        WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;

Как вот сюда даты записать? что-то не понимаю.


З.Ы. Разговор и правда пошел в SQL, извиняюсь, но не могу же перенести тему в другой раздел.
Название: Создание рейтинга с периодом времени.
Отправлено: Меняздесьдавнонет от 06 Апреля 2004, 22:57:40
"какая-то вторая" - это и есть твое поле с датой!