summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--listmembers.php28
-rw-r--r--stats.php12
-rw-r--r--viewmember.php36
3 files changed, 37 insertions, 39 deletions
diff --git a/listmembers.php b/listmembers.php
index 482d33e..ece98b6 100644
--- a/listmembers.php
+++ b/listmembers.php
@@ -47,14 +47,11 @@ elseif ( isset($_GET['compare']) )
$uri_addon = '';
$compare = validateCompareInput($_GET['compare']);
-
- // Find 30 days ago, then find how many raids occurred in those 30 days
- // Do the same for 60 and 90 days
- $thirty_days = mktime(0, 0, 0, date('m'), date('d')-30, date('Y'));
- $ninety_days = mktime(0, 0, 0, date('m'), date('d')-90, date('Y'));
-
- $raid_count_30 = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date BETWEEN '.$thirty_days.' AND '.time());
- $raid_count_90 = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date BETWEEN '.$ninety_days.' AND '.time());
+
+ $condition = "(raid_name = 'On time bonus' OR raid_name = 'Attendance Log')";
+
+ $raid_count_30 = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date >= (unix_timestamp() - (30*24*3600)) AND ' . $condition);
+ $raid_count_90 = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date >= (unix_timestamp() - (90*24*3600)) AND ' . $condition);
// Build an SQL query that includes each of the compare IDs
$sql = "SELECT *, (member_earned-member_spent+member_adjustment) AS member_current, c.class_name AS member_class
@@ -70,19 +67,8 @@ elseif ( isset($_GET['compare']) )
$individual_raid_count_30 = 0;
$individual_raid_count_90 = 0;
- $rc_sql = 'SELECT count(*)
- FROM ' . RAIDS_TABLE . ' r, ' . RAID_ATTENDEES_TABLE . " ra
- WHERE (ra.raid_id = r.raid_id)
- AND (ra.member_name='".$row['member_name']."')
- AND (r.raid_date BETWEEN ".$thirty_days.' AND '.time().')';
- $individual_raid_count_30 = $db->query_first($rc_sql);
-
- $rc_sql = 'SELECT count(*)
- FROM ' . RAIDS_TABLE . ' r, ' . RAID_ATTENDEES_TABLE . " ra
- WHERE (ra.raid_id = r.raid_id)
- AND (ra.member_name='".$row['member_name']."')
- AND (r.raid_date BETWEEN ".$ninety_days.' AND '.time().')';
- $individual_raid_count_90 = $db->query_first($rc_sql);
+ $individual_raid_count_30 = $db->query_first("SELECT raid_count_30 FROM R30 where member_name = '" . $row['member_name'] . "'");
+ $individual_raid_count_90 = $db->query_first("SELECT raid_count_90 FROM R90 where member_name = '" . $row['member_name'] . "'");
// Prevent division by 0
$percent_of_raids_30 = ( $raid_count_30 > 0 ) ? round(($individual_raid_count_30 / $raid_count_30) * 100) : 0;
diff --git a/stats.php b/stats.php
index 2bf3f91..90c2aeb 100644
--- a/stats.php
+++ b/stats.php
@@ -41,16 +41,12 @@ $sort_order = array(
$current_order = switch_order($sort_order);
-// Find 30 days ago, then find how many raids occurred in those 30 days
-// Do the same for 60 and 90 days
-$thirty_days = mktime(0, 0, 0, date('m'), date('d')-30, date('Y'));
-$sixty_days = mktime(0, 0, 0, date('m'), date('d')-60, date('Y'));
-$ninety_days = mktime(0, 0, 0, date('m'), date('d')-90, date('Y'));
+$condition = "(raid_name = 'On time bonus' OR raid_name = 'Attendance Log')";
// Hack for 30/60/90 days attendance
-$raid_count_30 = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date BETWEEN '.$thirty_days.' AND '.time());
-$raid_count_60 = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date BETWEEN '.$sixty_days.' AND '.time());
-$raid_count_90 = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date BETWEEN '.$ninety_days.' AND '.time());
+$raid_count_30 = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date >= (unix_timestamp() - (30*24*3600)) AND ' . $condition);
+$raid_count_60 = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date >= (unix_timestamp() - (60*24*3600)) AND ' . $condition);
+$raid_count_90 = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date >= (unix_timestamp() - (90*24*3600)) AND ' . $condition);
//Total raids
$total_raids = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE);
diff --git a/viewmember.php b/viewmember.php
index 8087c5e..226356c 100644
--- a/viewmember.php
+++ b/viewmember.php
@@ -44,9 +44,9 @@ if ( (isset($_GET[URI_NAME])) && (strval($_GET[URI_NAME] != '')) )
// Find the percent of raids they've attended in the last 30, 60 and 90 days
$percent_of_raids = array(
- '30' => raid_count(mktime(0, 0, 0, date('m'), date('d')-30, date('Y')), time(), $member['member_name']),
- '60' => raid_count(mktime(0, 0, 0, date('m'), date('d')-60, date('Y')), time(), $member['member_name']),
- '90' => raid_count(mktime(0, 0, 0, date('m'), date('d')-90, date('Y')), time(), $member['member_name']),
+ '30' => raid_count_view('30', $member['member_name']),
+ '60' => raid_count_view('60', $member['member_name']),
+ '90' => raid_count_view('90', $member['member_name']),
'lifetime' => raid_count($member['member_firstraid'], $member['member_lastraid'], $member['member_name'])
);
@@ -394,26 +394,42 @@ else
// ---------------------------------------------------------
// Page-specific functions
// ---------------------------------------------------------
+function raid_count_view($numdays, $member_name)
+{
+ global $db;
+
+ $condition = "(raid_name = 'On time bonus' OR raid_name = 'Attendance Log')";
+
+ $raid_count = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE raid_date >= (unix_timestamp() - ('. $numdays . '*24*3600)) AND ' . $condition);
+
+ $sql = 'SELECT raid_count_' . $numdays . ' FROM R' . $numdays . ' WHERE member_name = \'' . $member_name . '\'';
+ $individual_raid_count = $db->query_first($sql);
+
+ $percent_of_raids = ( $raid_count > 0 ) ? round(($individual_raid_count / $raid_count) * 100) : 0;
+
+ return $percent_of_raids;
+}
+
function raid_count($start_date, $end_date, $member_name)
{
global $db;
- $raid_count = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE (raid_date BETWEEN ' . $start_date . ' AND ' . $end_date . ')');
+ $condition = "(raid_name = 'On time bonus' OR raid_name = 'Attendance Log')";
+
+ $raid_count = $db->query_first('SELECT count(*) FROM ' . RAIDS_TABLE . ' WHERE (raid_date BETWEEN ' . $start_date . ' AND ' . $end_date . ') AND ' . $condition);
$sql = 'SELECT count(*)
FROM ' . RAID_ATTENDEES_TABLE . ' ra LEFT JOIN ' . RAIDS_TABLE . " r
ON (ra.raid_id = r.raid_id)
WHERE (ra.member_name='" . $member_name . "')
- AND (r.raid_date BETWEEN " . $start_date . ' AND ' . $end_date . ')';
+ AND (r.raid_date BETWEEN " . $start_date . ' AND ' . $end_date . ')
+ AND ' . $condition;
+
$individual_raid_count = $db->query_first($sql);
$percent_of_raids = ( $raid_count > 0 ) ? round(($individual_raid_count / $raid_count) * 100) : 0;
- $raid_count_stats = array(
- 'percent' => $percent_of_raids,
- 'total_count' => $raid_count,
- 'indiv_count' => $individual_raid_count);
+ return $percent_of_raids;
- return $raid_count_stats['percent']; // Only thing needed ATM
}
?>