#!/usr/bin/php5
30) {
$days = 30;
}
$username = "test";
$password = "555";
$server = "96.2.123.136:3306";
$database = "test";
$query = "
SELECT `s`.`server_name`, `s`.`ip_address`, `sg`.`stats_game_id`, `sg`.`game_type`, `sg`.`duration_seconds`, `sg`.`level_name`, `sg`.`insertion_date`, `st`.`team_name`, `st`.`color_hex`, `st`.`team_score`, `st`.`result`, `sp`.`player_name`, `sp`.`is_robot`, `sp`.`points`, `sp`.`kill_count`, `sp`.`death_count`, `sp`.`suicide_count`
FROM { OJ `test`.`stats_team` AS `st` LEFT OUTER JOIN `test`.`stats_player` AS `sp` ON `st`.`stats_team_id` = `sp`.`stats_team_id` }, `test`.`server` AS `s`, `test`.`stats_game` AS `sg`
WHERE `s`.`server_id` = `sg`.`server_id` AND `sg`.`stats_game_id` = `st`.`stats_game_id`
and sg.insertion_date between sysdate() - interval $days day and sysdate()
ORDER BY `sg`.`level_name` ASC, `sg`.`insertion_date` DESC, `st`.`team_name` ASC, `sp`.`player_name` ASC
";
$query_2 = "
select s.server_name, s.ip_address,
sg.stats_game_id, sg.game_type, sg.duration_seconds, sg.level_name, sg.insertion_date,
st.team_name, st.color_hex, st.team_score, st.result,
sp.player_name, sp.is_robot, sp.points, sp.kill_count, sp.death_count, sp.suicide_count
from server s, stats_game sg, stats_team st, stats_player sp
where s.server_id = sg.server_id
and sg.stats_game_id = st.stats_game_id
and sg.stats_game_id = sp.stats_game_id
and st.stats_team_id = sp.stats_team_id
and sg.insertion_date between sysdate() - interval $days day and sysdate()
order by sg.insertion_date desc, sg.level_name, st.team_name, sp.player_name
";
$query_w_shots = "
select s.server_name, s.ip_address,
sg.stats_game_id, sg.game_type, sg.duration_seconds, sg.level_name, sg.insertion_date,
st.team_name, st.color_hex, st.team_score, st.result,
sp.player_name, sp.is_robot, sp.points, sp.kill_count, sp.death_count, sp.suicide_count,
sps.weapon, sps.shots, sps.shots_struck
from server s, stats_game sg, stats_team st, stats_player sp, stats_player_shots sps
where s.server_id = sg.server_id
and sg.stats_game_id = st.stats_game_id
and sg.stats_game_id = sp.stats_game_id
and st.stats_team_id = sp.stats_team_id
and sp.stats_player_id = sps.stats_player_id
and sg.insertion_date between sysdate() - interval $days day and sysdate()
order by sg.insertion_date desc, sg.level_name, st.team_name, sp.player_name, sps.weapon
";
function connect_to_db() {
global $username;
global $password;
global $server;
global $database;
$connection = mysql_pconnect($server, $username, $password) or die("Could not connect: \n" . mysql_error());
//mysql_query("SET NAMES latin1") or die("Cannot SET NAMES latin1\n" . mysql_error());
mysql_select_db($database, $connection) or die("Cannot select db $dbname: \n" . mysql_error());
return $connection;
}
function get_database_data() {
global $query;
$master_array = array();
$last_stats_game_id = "";
$last_team_name = "";
$last_player_name = "";
$stats_game_id_changed = false;
$team_name_changed = false;
$player_name_changed = false;
$connection = connect_to_db();
$statement = mysql_query($query, $connection) or die('could not execute query: ' . $query);
// build up data structure
while ($row = mysql_fetch_array($statement)) {
$server_name = $row["server_name"];
$ip_address = $row["ip_address"];
$stats_game_id = $row["stats_game_id"];
$game_type = $row["game_type"];
$duration_seconds = $row["duration_seconds"];
$level_name = $row["level_name"];
$insertion_date = $row["insertion_date"];
$team_name = $row["team_name"];
$color_hex = $row["color_hex"];
$team_score = $row["team_score"];
$result = $row["result"];
$player_name = $row["player_name"];
$is_robot = $row["is_robot"];
//$result = $row["result"];
$points = $row["points"];
$kill_count = $row["kill_count"];
$death_count = $row["death_count"];
$suicide_count = $row["suicide_count"];
$weapon = $row["weapon"];
$shots = $row["shots"];
$shots_struck = $row["shots_struck"];
$current_game_array = array(
"server_name" => $server_name,
"ip_address" => $ip_address,
"game_type" => $game_type,
"duration_seconds" => $duration_seconds,
"level_name" => $level_name,
"insertion_date" => $insertion_date,
"team_array" => array()
);
$current_team_array = array(
"team_name" => $team_name,
"color_hex" => $color_hex,
"team_score" => $team_score,
"result" => $result,
"player_array" => array()
);
$current_player_array = array(
"player_name" => $player_name,
"is_robot" => $is_robot,
"points" => $points,
"kill_count" => $kill_count,
"death_count" => $death_count,
"suicide_count" => $suicide_count,
"shots_array" => array()
);
$current_shots_array = array(
"weapon" => $weapon,
"shots" => $shots,
"shots_struck" => $shots_struck
);
$stats_game_id_changed = false;
$team_name_changed = false;
$player_name_changed = false;
if ($stats_game_id != $last_stats_game_id) {
$stats_game_id_changed = true;
$team_name_changed = true;
$player_name_changed = true;
}
if ($last_team_name != $team_name) {
$team_name_changed = true;
$player_name_changed = true;
}
if ($last_player_name != $player_name) {
$player_name_changed = true;
}
if ($stats_game_id_changed) {
$master_array[$stats_game_id] = $current_game_array;
}
if ($team_name_changed) {
$master_array[$stats_game_id]["team_array"][$team_name] = $current_team_array;
}
if ($player_name_changed) {
$master_array["$stats_game_id"]["team_array"]["$team_name"]["player_array"]["$player_name"] = $current_player_array;
}
$master_array["$stats_game_id"]["team_array"]["$team_name"]["player_array"]["$player_name"]["shots_array"]["$weapon"] = $current_shots_array;
$last_stats_game_id = $stats_game_id;
$last_team_name = $team_name;
$last_player_name = $player_name;
}
mysql_close($connection);
return $master_array;
}
function build_report_html($master_array) {
global $days;
print("");
print("
Bitfighter Game Reports
Bitfighter Game Reports in the last $days days
Select game reports for a different time period:
");
foreach($master_array as $game) {
//print_r($game);
$server_name = $game["server_name"];
$ip_address = $game["ip_address"];
$game_type = $game["game_type"];
$duration_seconds = $game["duration_seconds"];
$level_name = $game["level_name"];
$insertion_date = $game["insertion_date"];
$team_array = $game["team_array"];
print("
Game ending at $insertion_date
Server | $server_name |
IP Adress | $ip_address |
Type | $game_type |
Level Name | $level_name |
Duration | $duration_seconds seconds |
");
foreach($team_array as $team) {
$team_name = $team["team_name"];
$color_hex = $team["color_hex"];
$team_score = $team["team_score"];
$result = $team["result"];
$player_array = $team["player_array"];
print(
"
Team: $team_name
Score | $team_score |
Result | $result |
");
print("
Players on this team:");
print("
");
print("Player name | ");
print("Points | ");
print("Kills | ");
print("Deaths | ");
print("Suicides | ");
//print("Shots | ");
print("
");
print("");
$row_increment = 0;
foreach($player_array as $player) {
$player_name = $player["player_name"];
$is_robot = $player["is_robot"];
$points = $player["points"];
$kill_count = $player["kill_count"];
$death_count = $player["death_count"];
$suicide_count = $player["suicide_count"];
$shots_array = $player["shots_array"];
$row_increment++;
if ($row_increment % 2 == 0) {
$row_class = "even";
} else {
$row_class = "odd";
}
print("");
print("$player_name");
if ($is_robot == 1) {
print(" (robot)");
}
print(" | ");
print("$points | ");
print("$kill_count | ");
print("$death_count | ");
print("$suicide_count | ");
/*
print("");
print("Weapon | Shots | Hits | ");
print(" ");
print("");
foreach($shots_array as $weapon_item) {
$weapon = $weapon_item["weapon"];
$shots = $weapon_item["shots"];
$shots_struck = $weapon_item["shots_struck"];
print("$weapon | $shots | $shots_struck | ");
}
print(" ");
print(" | ");
print("
");
*/
}
print("
");
print("
");
}
print("
");
}
print("");
}
# Start script
if (!extension_loaded('mysql')) {
print "You are missing the mysql php extension\n";
exit;
}
$master_array = get_database_data();
build_report_html($master_array);
?>