We can display stats per day.
This commit is contained in:
parent
66985c842e
commit
91f9f93d19
87
stats.php
87
stats.php
|
@ -21,56 +21,92 @@ if (!empty($_GET['for'])) {
|
||||||
|
|
||||||
if ($site) {
|
if ($site) {
|
||||||
|
|
||||||
$labels = $visits = $uniques = [];
|
if (!empty($_GET['date'])) {
|
||||||
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
|
$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
|
FROM visits
|
||||||
WHERE site_id=:site_id AND date>=:date_min AND date<=:date_max
|
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')]);
|
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) {
|
foreach ($last14days as $stat) {
|
||||||
$visits[$stat['date']] = (int) $stat['visits'];
|
$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
|
FROM visits
|
||||||
WHERE site_id=:site_id AND is_unique=1 AND date>=:date_min AND date<=:date_max
|
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')]);
|
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) {
|
foreach ($last14daysUniq as $stat) {
|
||||||
$uniques[$stat['date']] = (int) $stat['visits'];
|
$uniques[$stat['date']] = (int) $stat['visits'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$totalVisits = $pdo->run('SELECT COUNT(*) FROM visits WHERE site_id=?', [$site['id']])->fetchColumn();
|
$totalVisits = $pdo->run('SELECT COUNT(*) FROM visits WHERE site_id=?', [$site['id']])->fetchColumn();
|
||||||
$byPaths = $pdo->run('SELECT path, COUNT(*) as visits
|
$byPaths = $pdo->run('SELECT path, COUNT(*) as visits
|
||||||
FROM visits
|
FROM visits
|
||||||
WHERE site_id=?
|
WHERE site_id=?
|
||||||
GROUP BY path
|
GROUP BY path
|
||||||
ORDER BY visits DESC LIMIT 10', [$site['id']])->fetchAll();
|
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
|
FROM visits
|
||||||
WHERE site_id=? AND is_bot=0
|
WHERE site_id=? AND is_bot=0
|
||||||
GROUP BY browser
|
GROUP BY browser
|
||||||
ORDER BY visits DESC', [$site['id']])->fetchAll();
|
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
|
FROM visits
|
||||||
WHERE site_id=? AND is_bot=0
|
WHERE site_id=? AND is_bot=0
|
||||||
GROUP BY platform
|
GROUP BY platform
|
||||||
ORDER BY visits DESC', [$site['id']])->fetchAll();
|
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
|
FROM visits
|
||||||
WHERE site_id=? AND ref!=""
|
WHERE site_id=? AND ref!=""
|
||||||
GROUP BY ref
|
GROUP BY ref
|
||||||
ORDER BY visits DESC', [$site['id']])->fetchAll();
|
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
|
FROM visits
|
||||||
WHERE site_id=? AND is_bot=1
|
WHERE site_id=? AND is_bot=1
|
||||||
GROUP BY browser
|
GROUP BY browser
|
||||||
ORDER BY visits DESC', [$site['id']])->fetchAll();
|
ORDER BY visits DESC', [$site['id']])->fetchAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -104,7 +140,12 @@ ORDER BY visits DESC');
|
||||||
<a href="stats.php">Millions web counter</a>:
|
<a href="stats.php">Millions web counter</a>:
|
||||||
<?php if ($site) { ?>
|
<?php if ($site) { ?>
|
||||||
<h1><?php echo $site['label']; ?></h1>
|
<h1><?php echo $site['label']; ?></h1>
|
||||||
|
|
||||||
|
<?php if ($visits) { ?>
|
||||||
<canvas id="canvas"></canvas>
|
<canvas id="canvas"></canvas>
|
||||||
|
<?php foreach ($labels as $ymd=>$label) {
|
||||||
|
echo '<a href="stats.php?for=' . $site['host'] . '&date=' . $ymd . '">' . $label . '</a> ';
|
||||||
|
} ?>
|
||||||
<script>
|
<script>
|
||||||
window.chartColors = {
|
window.chartColors = {
|
||||||
red: 'rgb(255, 99, 132)',
|
red: 'rgb(255, 99, 132)',
|
||||||
|
@ -154,9 +195,13 @@ ORDER BY visits DESC');
|
||||||
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
<?php } // if $visits ?>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
if ($totalVisits==0 && !empty($_GET['date'])) {
|
||||||
|
echo '<p>no visits this day!</p>';
|
||||||
|
}
|
||||||
|
|
||||||
if (count($byPaths)) {
|
if (count($byPaths)) {
|
||||||
echo '<h2>Top '.count($byPaths).' visited pages</h2>';
|
echo '<h2>Top '.count($byPaths).' visited pages</h2>';
|
||||||
foreach ($byPaths as $page) {
|
foreach ($byPaths as $page) {
|
||||||
|
|
Loading…
Reference in New Issue