Forum Webscript.Ru
Общие => Базы данных => Тема начата: 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 дней лимита не знаю! Подскажите, если можете.
-
а почему вопрос задан в форуме по пхп, а не по мускулю?
Нет, можно, конечно, подставить в функцию date, которую ты используешь второй аргумент - результат работы mktime(), но правильнее будет сделать все средствами mysql
Вот, настоятельно рекомендую к прочтению:
http://www.mysql.com/doc/ru/Date_and_time_functions.html
и выкини на помойку этот уродский лайк.
операторами СРАВНЕНИЯ являются знак БОЛЬШЕ > и МЕНЬШЕ < - вот их и надо использовать.
-
Да, спасибо. Там есть пример на 30 дней, его можно и в 14 переработать. Спасибо, буду пробовать.
-
Вот только интересно, там есть две даты - сегодняшняя и какая-то вторая
mysql> SELECT something FROM tbl_name
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
Как вот сюда даты записать? что-то не понимаю.
З.Ы. Разговор и правда пошел в SQL, извиняюсь, но не могу же перенести тему в другой раздел.
-
"какая-то вторая" - это и есть твое поле с датой!