get_value('userflow')) { $DB->query(" SELECT J.Week, J.n as Joined, coalesce(D.n, 0) as Disabled FROM ( SELECT DATE_FORMAT(JoinDate, '%X-%V') AS Week, count(*) AS n FROM users_info GROUP BY Week ORDER BY 1 DESC LIMIT 52) J LEFT JOIN ( SELECT DATE_FORMAT(BanDate, '%X-%V') AS Week, count(*) AS n FROM users_info GROUP By Week ORDER BY 1 DESC LIMIT 52) D USING (Week) ORDER BY 1 "); $Timeline = $DB->to_array('Week', MYSQLI_ASSOC); $Cache->cache_value('userflow', $Timeline, 3600); } } define('DAYS_PER_PAGE', 100); list($Page, $Limit) = Format::page_limit(DAYS_PER_PAGE); $RS = $DB->query(" SELECT SQL_CALC_FOUND_ROWS j.Date, DATE_FORMAT(j.Date, '%Y-%m') AS Month, coalesce(j.Flow, 0) as Joined, coalesce(m.Flow, 0) as Manual, coalesce(r.Flow, 0) as Ratio, coalesce(i.Flow, 0) as Inactivity FROM ( SELECT DATE_FORMAT(JoinDate, '%Y-%m-%d') AS Date, COUNT(*) AS Flow FROM users_info GROUP BY Date ) AS j LEFT JOIN ( SELECT DATE_FORMAT(BanDate, '%Y-%m-%d') AS Date, COUNT(*) AS Flow FROM users_info WHERE BanDate IS NOT NULL AND BanReason = '1' GROUP BY Date ) AS m ON j.Date = m.Date LEFT JOIN ( SELECT DATE_FORMAT(BanDate, '%Y-%m-%d') AS Date, COUNT(*) AS Flow FROM users_info WHERE BanDate IS NOT NULL AND BanReason = '2' GROUP BY Date ) AS r ON j.Date = r.Date LEFT JOIN ( SELECT DATE_FORMAT(BanDate, '%Y-%m-%d') AS Date, COUNT(*) AS Flow FROM users_info WHERE BanDate IS NOT NULL AND BanReason = '3' GROUP BY Date ) AS i ON j.Date = i.Date ORDER BY j.Date DESC LIMIT $Limit"); $DB->query('SELECT FOUND_ROWS()'); list($Results) = $DB->next_record(); View::show_header('User Flow'); $DB->set_query_id($RS); ?>
next_record()) { $TotalOut = $Ratio + $Inactivity + $Manual; $TotalGrowth = $Joined - $TotalOut; ?>
Date (+) Joined (-) Manual (-) Ratio (-) Inactivity (-) Total Net Growth