From 91f9f93d1977b4c86b3389b16e9a6669a1569d89 Mon Sep 17 00:00:00 2001 From: severak Date: Tue, 3 Mar 2020 14:58:40 +0100 Subject: [PATCH] We can display stats per day. --- stats.php | 87 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 66 insertions(+), 21 deletions(-) diff --git a/stats.php b/stats.php index 9e465cf..8b82b06 100644 --- a/stats.php +++ b/stats.php @@ -21,56 +21,92 @@ if (!empty($_GET['for'])) { if ($site) { - $labels = $visits = $uniques = []; - for ($d=14; $d>=0; $d--) { - $labels[date('Y-m-d', strtotime('-'.$d.'days'))] = date('Dd', strtotime('-'.$d.'days')); - $visits[date('Y-m-d', strtotime('-'.$d.'days'))] = 0; - $uniques[date('Y-m-d', strtotime('-'.$d.'days'))] = 0; - } + if (!empty($_GET['date'])) { - $last14days = $pdo->run('SELECT date(datetime(ts, \'unixepoch\')) as date, COUNT(*) as visits + $visits = false; + $totalVisits = $pdo->run('SELECT COUNT(*) FROM visits WHERE site_id=? AND date(ts, "unixepoch")=?', [$site['id'], $_GET['date']])->fetchColumn(); + $byPaths = $pdo->run('SELECT path, COUNT(*) as visits +FROM visits +WHERE site_id=? AND date(ts, "unixepoch")=? +GROUP BY path +ORDER BY visits DESC LIMIT 10', [$site['id'], $_GET['date']])->fetchAll(); + $byBrowsers = $pdo->run('SELECT browser, COUNT(*) as visits +FROM visits +WHERE site_id=? AND is_bot=0 AND date(ts, "unixepoch")=? +GROUP BY browser +ORDER BY visits DESC', [$site['id'], $_GET['date']])->fetchAll(); + $byPlatforms = $pdo->run('SELECT platform, COUNT(*) as visits +FROM visits +WHERE site_id=? AND is_bot=0 AND date(ts, "unixepoch")=? +GROUP BY platform +ORDER BY visits DESC', [$site['id'], $_GET['date']])->fetchAll(); + $byRefs = $pdo->run('SELECT ref, COUNT(*) as visits +FROM visits +WHERE site_id=? AND ref!="" AND date(ts, "unixepoch")=? +GROUP BY ref +ORDER BY visits DESC', [$site['id'], $_GET['date']])->fetchAll(); + + $byBots = $pdo->run('SELECT browser, COUNT(*) as visits +FROM visits +WHERE site_id=? AND is_bot=1 AND date(ts, "unixepoch")=? +GROUP BY browser +ORDER BY visits DESC', [$site['id'], $_GET['date']])->fetchAll(); + + } else { + $labels = $visits = $uniques = []; + for ($d=14; $d>=0; $d--) { + $labels[date('Y-m-d', strtotime('-'.$d.'days'))] = date('Dd', strtotime('-'.$d.'days')); + $visits[date('Y-m-d', strtotime('-'.$d.'days'))] = 0; + $uniques[date('Y-m-d', strtotime('-'.$d.'days'))] = 0; + } + + $last14days = $pdo->run('SELECT date(datetime(ts, \'unixepoch\')) as date, COUNT(*) as visits FROM visits WHERE site_id=:site_id AND date>=:date_min AND date<=:date_max GROUP BY date', [':site_id'=>$site['id'], ':date_min'=>date('Y-m-d', strtotime('-14 days')), ':date_max'=>date('Y-m-d')]); - foreach ($last14days as $stat) { - $visits[$stat['date']] = (int) $stat['visits']; - } + foreach ($last14days as $stat) { + $visits[$stat['date']] = (int) $stat['visits']; + } - $last14daysUniq = $pdo->run('SELECT date(datetime(ts, \'unixepoch\')) as date, COUNT(*) as visits + $last14daysUniq = $pdo->run('SELECT date(datetime(ts, \'unixepoch\')) as date, COUNT(*) as visits FROM visits WHERE site_id=:site_id AND is_unique=1 AND date>=:date_min AND date<=:date_max GROUP BY date', [':site_id'=>$site['id'], ':date_min'=>date('Y-m-d', strtotime('-14 days')), ':date_max'=>date('Y-m-d')]); - foreach ($last14daysUniq as $stat) { - $uniques[$stat['date']] = (int) $stat['visits']; - } + foreach ($last14daysUniq as $stat) { + $uniques[$stat['date']] = (int) $stat['visits']; + } - $totalVisits = $pdo->run('SELECT COUNT(*) FROM visits WHERE site_id=?', [$site['id']])->fetchColumn(); - $byPaths = $pdo->run('SELECT path, COUNT(*) as visits + $totalVisits = $pdo->run('SELECT COUNT(*) FROM visits WHERE site_id=?', [$site['id']])->fetchColumn(); + $byPaths = $pdo->run('SELECT path, COUNT(*) as visits FROM visits WHERE site_id=? GROUP BY path ORDER BY visits DESC LIMIT 10', [$site['id']])->fetchAll(); - $byBrowsers = $pdo->run('SELECT browser, COUNT(*) as visits + $byBrowsers = $pdo->run('SELECT browser, COUNT(*) as visits FROM visits WHERE site_id=? AND is_bot=0 GROUP BY browser ORDER BY visits DESC', [$site['id']])->fetchAll(); - $byPlatforms = $pdo->run('SELECT platform, COUNT(*) as visits + $byPlatforms = $pdo->run('SELECT platform, COUNT(*) as visits FROM visits WHERE site_id=? AND is_bot=0 GROUP BY platform ORDER BY visits DESC', [$site['id']])->fetchAll(); - $byRefs = $pdo->run('SELECT ref, COUNT(*) as visits + $byRefs = $pdo->run('SELECT ref, COUNT(*) as visits FROM visits WHERE site_id=? AND ref!="" GROUP BY ref ORDER BY visits DESC', [$site['id']])->fetchAll(); - $byBots = $pdo->run('SELECT browser, COUNT(*) as visits + $byBots = $pdo->run('SELECT browser, COUNT(*) as visits FROM visits WHERE site_id=? AND is_bot=1 GROUP BY browser ORDER BY visits DESC', [$site['id']])->fetchAll(); + } + + + } else { @@ -104,7 +140,12 @@ ORDER BY visits DESC'); Millions web counter:

+ + +$label) { + echo '' . $label . ' '; +} ?> - + no visits this day!

'; +} + if (count($byPaths)) { echo '

Top '.count($byPaths).' visited pages

'; foreach ($byPaths as $page) {