View difference between Paste ID: RzAwSW2W and QMqLe5S9
SHOW: | | - or go back to the newest paste.
1
<?php
2
3
/* Array having the days as keys (YYYY-mm-dd) and the view count as values */
4
$days = array();
5
6-
/* Initialize the days keys to 0 */
6+
/* Initialize the days keys to 0, for both ads and phone */
7
for ($i = 0; $i < 7; $i++)
8
{
9
	$dayUts = mktime(0, 0, 0, date('n'), date('j') - $i, date('Y'));
10
	$day = date('Y-m-d', $dayUts);
11-
	$days[$day] = 0;
11+
	$days[$day] = array('ads' => 0, 'phone' => 0);
12
}
13
14
/* Now read the view count from the DB */
15-
$query = 'SELECT DATE_FORMAT(view_count_date, "%Y-%m-%d") AS time, count(*) AS view_count from ads_view_count WHERE view_count_date >= (NOW() - INTERVAL 7 DAY) AND view_count_user_id = :id';
15+
$query = 'SELECT DATE_FORMAT(view_count_date, "%Y-%m-%d") AS time, count(*) AS view_count_ads, -1 AS view_count_phone FROM ads_view_count WHERE view_count_date >= (NOW() - INTERVAL 7 DAY) AND view_count_user_id = :id UNION SELECT DATE_FORMAT(view_count_date, "%Y-%m-%d") AS time, -1 AS view_count_ads, count(*) AS view_count_phone FROM phone_view_count WHERE view_count_date >= (NOW() - INTERVAL 7 DAY) AND view_count_user_id = :id';
16
17
/* Note: be sure to validate $_SESSION['id'] */
18
$res = $pdo->prepare($query);
19
$res->bindValue(':id', $_SESSION['id'], PDO::PARAM_INT);
20
$res->execute();
21
22
/* Now we update the $days array with the view count from the query */
23
while ($row = $res->fetch(PDO::FETCH_ASSOC))
24
{
25
	if (array_key_exists($row['time'], $days))
26-
	{
26+
    {
27-
		$days[$row['time']] = intval($row['view_count'], 10);
27+
		$ads_count = intval($row['view_count_ads'], 10);
28
		$phone_count = intval($row['view_count_phone'], 10);
29
		
30
		/* If view_count_ads is -1 it means this is a result from phone_vew_count */
31
		if (ads_count  == -1)
32
		{
33
			$days[$row['time']]['phone'] = $phone_count;
34
    	}
35
		else /* Otherwise, it's a result from ads_vew_count */
36
		{
37
			$days[$row['time']]['ads'] = $ads_count;
38
    	}
39
	}
40
}