exec("
CREATE TABLE IF NOT EXISTS courses (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
par_hole_1 INT NOT NULL,
par_hole_2 INT NOT NULL,
par_hole_3 INT NOT NULL,
par_hole_4 INT NOT NULL,
par_hole_5 INT NOT NULL,
par_hole_6 INT NOT NULL,
par_hole_7 INT NOT NULL,
par_hole_8 INT NOT NULL,
par_hole_9 INT NOT NULL,
par_hole_10 INT NOT NULL,
par_hole_11 INT NOT NULL,
par_hole_12 INT NOT NULL,
par_hole_13 INT NOT NULL,
par_hole_14 INT NOT NULL,
par_hole_15 INT NOT NULL,
par_hole_16 INT NOT NULL,
par_hole_17 INT NOT NULL,
par_hole_18 INT NOT NULL,
hole_count INT NOT NULL DEFAULT 18,
tournament_date DATE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
");
echo "Table 'courses' created successfully or already exists.
";
$pdo->exec("
CREATE TABLE IF NOT EXISTS scores (
id INT AUTO_INCREMENT PRIMARY KEY,
player_name VARCHAR(255) NOT NULL,
team_name VARCHAR(255),
course_id INT NOT NULL,
holes_played INT NOT NULL DEFAULT 9,
hole_1_score INT,
hole_2_score INT,
hole_3_score INT,
hole_4_score INT,
hole_5_score INT,
hole_6_score INT,
hole_7_score INT,
hole_8_score INT,
hole_9_score INT,
hole_10_score INT,
hole_11_score INT,
hole_12_score INT,
hole_13_score INT,
hole_14_score INT,
hole_15_score INT,
hole_16_score INT,
hole_17_score INT,
hole_18_score INT,
total_score INT,
total_to_par INT,
played_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (course_id) REFERENCES courses(id)
) ENGINE=InnoDB;
");
echo "Table 'scores' created successfully or already exists.
";
// Add hole_count to courses if it doesn't exist
$stmt = $pdo->query("SHOW COLUMNS FROM courses LIKE 'hole_count'");
if ($stmt->rowCount() == 0) {
$pdo->exec("ALTER TABLE courses ADD COLUMN hole_count INT NOT NULL DEFAULT 18");
echo "Column 'hole_count' added to 'courses' table.
";
}
// Add tournament_date to courses if it doesn't exist
$stmt = $pdo->query("SHOW COLUMNS FROM courses LIKE 'tournament_date'");
if ($stmt->rowCount() == 0) {
$pdo->exec("ALTER TABLE courses ADD COLUMN tournament_date DATE");
echo "Column 'tournament_date' added to 'courses' table.
";
}
} catch (PDOException $e) {
die("DB ERROR: " . $e->getMessage());
}
// New tables for coaches and players
try {
$pdo = db();
// Coaches table
$pdo->exec("
CREATE TABLE IF NOT EXISTS coaches (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL, -- Hashed password
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
");
echo "Table 'coaches' created successfully or already exists.
";
// Players table
$pdo->exec("
CREATE TABLE IF NOT EXISTS players (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
handicap INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
");
echo "Table 'players' created successfully or already exists.
";
// Team table to link coaches and players
$pdo->exec("
CREATE TABLE IF NOT EXISTS teams (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL UNIQUE,
coach_id INT NOT NULL,
FOREIGN KEY (coach_id) REFERENCES coaches(id)
) ENGINE=InnoDB;
");
echo "Table 'teams' created successfully or already exists.
";
// Team_members table to link players to a team
$pdo->exec("
CREATE TABLE IF NOT EXISTS team_members (
id INT AUTO_INCREMENT PRIMARY KEY,
team_id INT NOT NULL,
player_id INT NOT NULL,
FOREIGN KEY (team_id) REFERENCES teams(id),
FOREIGN KEY (player_id) REFERENCES players(id)
) ENGINE=InnoDB;
");
echo "Table 'team_members' created successfully or already exists.
";
} catch (PDOException $e) {
die("DB ERROR: " . $e->getMessage());
}
?>