Я изучаю создание php веб-страниц с MySQL. хотел запустить сценарий, но я терпел неудачу. Я получаю белый экран смерти. Можете ли вы посмотреть на код и рассказать мне, что делать и в каком направлении мне идти. спасибо за ваше время.Белый экран смерти на динамической странице sql php
<?php
include 'include.php';
// PHP Class bracket
// Bracket builder for GotGames
// Author Benjamin Thomas
// October 2009
class bracket {
//Bring In Database Details From Include.PHP
var $username = DB_USER;
var $password = DB_PASS;
var $database = DB_NAME;
//Init Class Variables
var $tournament_name;
var $tournament_size;
var $tournament_format;
var $tournament_id;
var $result_servers;
var $result_stvs;
var $result_matches;
var $result_teams;
//*************************************************************************************
// schedule bracket
// Input - The tournament ID used to identify which tournament we are scheduling for
// Operation - This constructor reads the required information from the databas and assigns the following class values:
// tournament_name;
// tournament_size;
// tournament_format;
// tournament_id;
// result_servers;
// result_stvs;
// result_matches;
// result_teams;
//*************************************************************************************
function bracket($tourn_id) {
//Save the Tournament ID
$this->tournament_id = $tourn_id;
//Collect All Required Information To Draw a Bracket
mysql_connect('localhost',$this->username,$this->password);
@mysql_select_db($this->database) or die("Unable to select database");
$query = "SELECT * FROM tms_tournament WHERE id = ".$tourn_id;
$result_tournament = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_assoc($result_tournament);
$this->tournament_name = $row['name'];
$this->tournament_size = $row['size'];
$this->tournament_format = $row['format'];
mysql_free_result($result_tournament);
//read and save information from database
$query = "SELECT * FROM tms_servers WHERE id_tournament = ".$tourn_id;
$this->result_servers = mysql_query($query) or die('Error, query failed');
$query = "SELECT * FROM tms_stvs WHERE id_tournament = ".$tourn_id;
$this->result_stvs = mysql_query($query) or die('Error, query failed');
$query = "SELECT * FROM tms_matches WHERE id_tournament = ".$tourn_id;
$this->result_matches = mysql_query($query) or die('Error, query failed');
$query = "SELECT * FROM tms_teams_".$tourn_id." WHERE id_tournament = ".$tourn_id;
$this->result_teams = mysql_query($query) or die('Error, query failed');
}
//*************************************************************************************
// Function draw
// Operation - Called to display a single elimination bracket
//*************************************************************************************
function draw() {
$total_rounds = log($this->tournament_size,2)+1; //total rounds
$row = array();
$col = array($row); //create a data type to hold our bracket information
//Generate a datastructure to hold all the information required to layout the bracket
for($i = 1; $i <= $total_rounds; $i++) {
$round_matches = $this->getmatches($i);
$matches = pow(2,$total_rounds-$i); //calc how many matches for this round
$interval = pow(2,$i); // calc the interval for layout spacing
$offset = pow(2,$i-1); // each round is offset by a differnt amount to form the bracket pyramid
for($c = 1; $c <= ($this->tournament_size*2)+1; $c++) {
if ($c < $offset) { // blank space
$col[$i][$c] = 0;
} elseif ($c > (($this->tournament_size*2)+1)-$offset) { // blank space
$col[$i][$c] = 0;
} elseif ($c==$offset) {
if ($i==$total_rounds) { //No match but tournament winner
$col[$i][$c] = "Champion";
}else { //print a team here
$tmp_array=array_shift($round_matches);
$col[$i][$c] = $tmp_array['print_team'];
}
} elseif ((($c-$offset) % $interval) == 0) { //print a team here
$tmp_array=array_shift($round_matches);
$col[$i][$c] = $tmp_array['print_team'];
} elseif ($c==($offset*2)) { //print match here
$col[$i][$c] = "Match".$tmp_array['id'];
} elseif ((($c-$offset*2) % ($interval*2)) == 0) { //print match here
$col[$i][$c] = "Match".$tmp_array['id'];
} else {
$col[$i][$c] = 0; // blank space
}
print("<br>");
}
// layout the bracket using html tables and the data struct created above: col
print("<table width='100%' border='5'>");
print("<tr>");
for($i = 1; $i <= $total_rounds-1; $i++) {
print("<th>Round ".(string)$i."</th>");
}
print("</tr>");
for($c=1;$c<=($this->tournament_size*2);$c++) {
print("<tr>");
for($i = 1; $i <= $total_rounds+1; $i++) {
if (strcmp(substr($col[$i][$c],0,5),"Match")==0) {
$tmp_array = $this->getmatch(substr($col[$i][$c],5));
$datetime = new DateTime($tmp_array['timestamp']);
print("<td align='center' bgcolor='#FFE4E1'><table><tr><td
align='center'>".$datetime->format("D, jS F Y gA")."</td></tr><tr><td align='center'>stv - ".$this->getstvdetails($tmp_array['id_stv'])."</td></tr></table> </td>");
} elseif (strcmp(substr($col[$i][$c],0,5),"Teams")==0) {
print("<td align='center' bgcolor='#dddddd'>".$this->getteamname(substr($col[$i] [$c],5))."</td>");
} elseif ($col[$i][$c]) {
print("<td align='center' bgcolor='#dddddd'>".$col[$i][$c]."</td>");
} else {
print("<td height='40'></td>");
}
}
print("</tr>");
}
print("</table>");
}
}
//*************************************************************************************
// Function getmatch
// Input - match_id
// Operation - Retrives all the information saved for the parsed match_id
//*************************************************************************************
function getmatch($match_id) {
$query = "SELECT * FROM tms_matches WHERE id = ".(string)$match_id;
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
mysql_free_result($result);
return $row;
}
//*************************************************************************************
// Function getteamname
// Input - team_id
// Operation - Returns the name of the team with the parsed team ID
//*********************************************************************************** **
function getteamname($team_id) {
$query = "SELECT name FROM tms_teams_".(string)$this->tournament_id." WHERE id = ".(string)$team_id;$result = mysql_query($query) or die('Error, query failed');
return mysql_result($result, 0);
}
//*************************************************************************************
// Function getstvdetails
// Input - stv_id
// Operation - Returns the IP Address of the parsed stv id
//*************************************************************************************
function getstvdetails($stv_id) {
$query = "SELECT address FROM tms_stvs WHERE id = ".(string)$stv_id;
$result = mysql_query($query);
return mysql_result($result, 0);
}
//*************************************************************************************
// Function getmatches
// Input round_no
// Operation - Returns an array of all the matches for the parse round. The array is sorted by the position field.
//*************************************************************************************
function getmatches($round_no) {
$matches_avail = array();
$tmp_row = array();
$query = "SELECT * FROM tms_matches WHERE id_tournament = ".$this->tournament_id."
AND round = ".(string)$round_no." ORDER BY position";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
$tmp_row = $row;
if ($row['status'] == 1) {
$row = array_merge($row,array("print_team"=>"Winner of
".$row['id_match_parent_a']));
} else {
$row =
array_merge($row,array("print_team"=>"Teams".$row['id_team_a']));//team A
}
$matches_avail[] = $row;
$row = $tmp_row;
if ($row['status'] == 1) {
$row = array_merge($row,array("print_team"=>"Winner of
".$row['id_match_parent_b']));
} else {
$row =
array_merge($row,array("print_team"=>"Teams".$row['id_team_b']));//team B
}
$matches_avail[] = $row;
unset($tmp_row);
}return $matches_avail;
}
//*************************************************************************************
// destructor
// Operation - Frees memory held by SQL result sets
//*************************************************************************************
function __destruct() {
mysql_free_result($this->result_servers);
mysql_free_result($this->result_stvs);
mysql_free_result($this->result_matches);
mysql_free_result($this->result_teams);
mysql_close();
}
}
?>
Включите 'error_reporting (-1)' и, пожалуйста, укажите свой код, желательно с 4 пробелами. Это совершенно нечитаемо. – Daan
Поскольку вы начинаете и все, я предлагаю отходить от mysql_ * и использовать PDO для соединений db. – Rob
По мере того как вы начали путешествие сюда, в stackoverflow только что прочитали рекомендации –