All pastes #1561403 Raw Edit

NFL PBP using Sportsdb

public php v1 · immutable
#1561403 ·published 2009-09-10 20:02 UTC
rendered paste body
function getNFLPBP($date, $date2) {	$conn = dbOpen();	$pbp = array();	if ($date != '' && $date2 != '') {		$startdate = $date . ' 05:00:00.000';		$enddate = getNextDay($date2) . ' 05:00:00.000';	} else {		$startdate = getTodaysDate() . ' 05:00:00.000';		$enddate = getTomorrowsDate() . ' 05:00:00.000';	}	$awayScore = 0;	$homeScore = 0;	$currentId = 0;	$query = "		SELECT		american_football_event_states.*,		events.event_key		FROM		events,		american_football_event_states,		american_football_action_plays		WHERE		events.event_key LIKE 'l.nfl.com%'		AND events.start_date_time >= '{$startdate}'		AND events.start_date_time <= '{$enddate}'		AND american_football_event_states.event_id = events.id		AND american_football_action_plays.american_football_event_state_id = american_football_event_states.id		AND american_football_event_states.context = 'event-play'		ORDER BY		events.id, sequence_number		";	$results = mysql_query($query, $conn);	while ($row = mysql_fetch_assoc($results)) {		$row['event_key'] = str_replace('l.nfl.com-2008-e.', '', $row['event_key']);		$query = "SELECT * FROM american_football_action_plays WHERE american_football_event_state_id = {$row['id']}";		$results2 = mysql_query($query, $conn);		if ($currentId != $row['event_id']) {			$currentId = $row['event_id'];			$awayScore = 0;			$homeScore = 0;			// Get home and away team for this event			$sql = "SELECT participant_id, alignment FROM participants_events WHERE event_id = {$row['event_id']} AND alignment IS NOT NULL";			$q = mysql_query($sql, $conn);			while ($r2 = mysql_fetch_assoc($q)) {				if ($r2['alignment'] == 'home') {					$homeTeam = $r2['participant_id'];				} else {					$awayTeam = $r2['participant_id'];				}			}		}		while ($row2 = mysql_fetch_assoc($results2)) {			$scoringPlay = false;			$query = "SELECT * FROM american_football_action_participants WHERE american_football_action_play_id = {$row2['id']}";			$results3 = mysql_query($query, $conn);			// Remove missed kick from play-type			if (($row2['play_type'] == 'field-goal' || $row2['play_type'] == 'extra-point') && $row2['points'] == 0) {				$row2['play_type'] = null;			}			// Change play_type to 'touchdown' if one occurs			if ($row2['points'] == 6) {				$row2['play_type'] = 'touchdown';			}			while ($row3 = mysql_fetch_assoc($results3)) {				$query = "					SELECT					dn_person.full_name,					teams.team_key,					teams.id as scoring_team_id,					persons.person_key					FROM					display_names as dn_person,					display_names as dn_team,					person_phases,					persons,					teams					WHERE					dn_person.entity_type = 'persons'					AND dn_person.entity_id = '{$row3['person_id']}'					AND dn_team.entity_type = 'teams'					AND dn_team.entity_id = teams.id					AND persons.id = {$row3['person_id']}					AND person_phases.person_id = persons.id					AND person_phases.membership_id = teams.id					AND person_phases.membership_type = 'teams'					";				$results4 = mysql_query($query, $conn);				while ($row4 = mysql_fetch_assoc($results4)) {					$row4 = preg_replace('/l.nfl.com-t./', '', $row4);					$row4 = preg_replace('/l.nfl.com-p./', '', $row4);					$scoring_team_id = $row4['scoring_team_id'];					// Let's see if we have a scoring play					if ($scoringPlay == false) {						if ($row2['points'] !=0 && $row2['score_attempt_type'] != null) {							// Now we have to get the team that did the scoring							$sql = "SELECT								person_id								FROM								american_football_action_participants								WHERE								american_football_action_play_id = {$row2['id']}								AND id = (SELECT								MAX(id)								FROM								american_football_action_participants								WHERE								american_football_action_play_id = {$row2['id']})";							$query = mysql_query($sql, $conn);							$row5 = mysql_fetch_assoc($query);							$sql = "SELECT								teams.id								FROM								person_phases, persons, teams								WHERE								person_id = {$row5['person_id']}								AND person_phases.person_id = persons.id								AND person_phases.membership_id = teams.id								AND person_phases.membership_type = 'teams'";							$query = mysql_query($sql, $conn);							$row5 = mysql_fetch_assoc($query);							$scoring_team_id = $row5['id'];							$scoringPlay = true;							switch ($scoring_team_id) {							case $awayTeam:								$awayScore += $row2['points'];								break;							case $homeTeam:								$homeScore += $row2['points'];								break;							}						}					}					$data = array(						trim($row['event_key']),						trim($row['id']), 						trim($row['sequence_number']),						trim($row['down']), 						trim($row['distance_for_1st_down']),						trim($row['field_line']),						trim($row['field_side']),						trim($row4['person_key']),						trim($row4['full_name']),						trim($row4['team_key']),						trim($row3['participant_role']),						trim($row2['play_type']),						trim($row3['yards_gained']),						trim(($row2['points'] != 6) ? 0 : 1),						trim($row['period_value']),						trim($row['period_time_remaining']),						trim($awayScore),						trim($homeScore)					);					$line = implode(',', $data);					array_push($pbp, $line);				}			}		}	}	dbClose($conn);	$headers = "EVENT ID, PLAY ID, SEQUENCE NUMBER, DOWN, TO-GO, AT YD, SIDE, PLAYER KEY, PLAYER, TEAM-KEY, ROLE, STAT, YARDS, TD, QUARTER, TIME REMAINING, AWAY SCORE, HOME SCORE";	array_unshift($pbp, $headers);	return $pbp;}