diff options
-rw-r--r-- | listmembers.php | 28 | ||||
-rw-r--r-- | stats.php | 12 | ||||
-rw-r--r-- | viewmember.php | 36 |
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; @@ -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
}
?>
|