idencial
Одинаковый
Можно ли все это одним запросом?
Смысл проблемы в следующем:
Требуется реализовать динамику посещений за последние 30 дней.
Посчитать нужно, к примеру, хиты и хосты, но выводить надо не просто хиты и хосты за определнный день, а хиты и хосты нарастающим итогом (это скорее относится к хостам, т.к они уникальные), т.е нужно выводить последовательно, хиты и хосты, посчитанные за определенный интервал времени (этот интервал ес-но растет от 1 дня к 30).
структура базы стандартная
ip | datetime | url
сейчас делаю так:
Смысл проблемы в том, что я не могу посчитать хиты и хосты одним запросом, т.к тогда нужно использовать group by, а он здесь нахрен не нужен.
Может кто видит решение проблемы более простым способом?
Смысл проблемы в следующем:
Требуется реализовать динамику посещений за последние 30 дней.
Посчитать нужно, к примеру, хиты и хосты, но выводить надо не просто хиты и хосты за определнный день, а хиты и хосты нарастающим итогом (это скорее относится к хостам, т.к они уникальные), т.е нужно выводить последовательно, хиты и хосты, посчитанные за определенный интервал времени (этот интервал ес-но растет от 1 дня к 30).
структура базы стандартная
ip | datetime | url
сейчас делаю так:
PHP:
$result_date = mysql_query("SELECT DATE_FORMAT(datetime, '%Y-%m-%d') as date FROM stat where (DATE_FORMAT(datetime, '%Y-%m-%d') >= date_sub(DATE_FORMAT('$date', '%Y-%m-%d'), interval 1 month) AND DATE_FORMAT(datetime, '%Y-%m-%d') <= DATE_FORMAT('$date', '%Y-%m-%d')) group by date order by date desc");
for($i=0; $i<mysql_num_rows($result_date); $i++) {
$output_date = mysql_fetch_array($result_date);
$result_hits = mysql_query("SELECT count(url) as hits FROM stat where (DATE_FORMAT(datetime, '%Y-%m-%d') >= date_sub(DATE_FORMAT('$date', '%Y-%m-%d'), interval 1 month) AND DATE_FORMAT(datetime, '%Y-%m-%d') <= '$output_date[date]')");
$result_hosts = mysql_query("SELECT count(DISTINCT(ip)) as hosts FROM $tablename[page_stat] where (DATE_FORMAT(datetime, '%Y-%m-%d') >= date_sub(DATE_FORMAT('$date', '%Y-%m-%d'), interval 1 month) AND DATE_FORMAT(datetime, '%Y-%m-%d') <= '$output_date[date]')");
}
Может кто видит решение проблемы более простым способом?