-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinclude.php
More file actions
121 lines (108 loc) · 3.78 KB
/
include.php
File metadata and controls
121 lines (108 loc) · 3.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
declare(strict_types=1);
class Player
{
public int $player_id;
public string $name;
public int $elo1;
public int $free_elo1;
public int $elo2;
public int $free_elo2;
}
require 'identity.php';
$pdo = new PDO("mysql:host=$MYSQL_SERVER;dbname=$MYSQL_DB_NAME", $MYSQL_USER, $MYSQL_PASSWORD);
// $pdo = new PDO('mysql:host=localhost;dbname=elo', 'root', '');
//$pdo->query("SET time_zone = 'Europe/Berlin'");
function add_player(string $name, PDO $pdo): bool
{
try {
$statement = $pdo->prepare("INSERT INTO `player` (`name`) VALUES (:new_name)");
return $statement->execute([':new_name' => $name]);
} catch (PDOException $th) {
return false;
}
}
function add_game1(Player $winner, Player $loser, PDO $pdo): bool
{
$statement = $pdo->prepare(
"INSERT INTO `game` (`winner1_id`, `winner1_old_elo`, `loser1_id`, `loser1_old_elo`) VALUES (:winner_id, :winner_old_elo, :loser_id, :loser_old_elo)"
);
return $statement->execute(
[
':winner_id' => $winner->player_id,
':winner_old_elo' => $winner->elo1,
':loser_id' => $loser->player_id,
':loser_old_elo' => $loser->elo1
]
);
}
function add_game2(Player $winner1, Player $winner2, Player $loser1, Player $loser2, PDO $pdo): bool
{
$statement = $pdo->prepare(
"INSERT INTO `game` (`winner1_id`, `winner1_old_elo`, `winner2_id`, `winner2_old_elo`, `loser1_id`, `loser1_old_elo`, `loser2_id`, `loser2_old_elo`)
VALUES (:winner1_id, :winner1_old_elo, :winner2_id, :winner2_old_elo, :loser1_id, :loser1_old_elo, :loser2_id, :loser2_old_elo)"
);
return $statement->execute(
[
':winner1_id' => $winner1->player_id,
':winner1_old_elo' => $winner1->elo2,
':winner2_id' => $winner2->player_id,
':winner2_old_elo' => $winner2->elo2,
':loser1_id' => $loser1->player_id,
':loser1_old_elo' => $loser1->elo2,
':loser2_id' => $loser2->player_id,
':loser2_old_elo' => $loser2->elo2
]
);
}
function get_player_by_name(string $name, PDO $pdo): Player|false
{
$statement = $pdo->prepare("SELECT * FROM `player` WHERE `name` LIKE :name");
$statement->execute([':name' => $name]);
return $statement->fetchObject('Player');
}
function get_player_by_id(int $player_id, PDO $pdo): Player|false
{
$statement = $pdo->prepare("SELECT * FROM `player` WHERE `player_id` LIKE :player_id");
$statement->execute([':player_id' => $player_id]);
return $statement->fetchObject('Player');
}
/**
* @return array<int, Player>
*/
function get_players(PDO $pdo)
{
$statement = $pdo->query('SELECT * FROM `player` ORDER BY GREATEST(`player`.`elo1`,`player`.`elo2`) DESC, `player`.`player_id` ASC');
$statement->setFetchMode(PDO::FETCH_CLASS, 'Player');
$return = $statement->fetchAll();
return ($return != false) ? $return : [];
}
function set_player(Player $player, PDO $pdo): bool
{
$statement = $pdo->prepare(
"UPDATE `player` SET `name` = :name, `elo1` = :elo1, `free_elo1` = :free_elo1, `elo2` = :elo2, `free_elo2` = :free_elo2 WHERE `player`.`player_id` = :player_id"
);
return $statement->execute(
[
':player_id' => $player->player_id,
':name' => $player->name,
':elo1' => $player->elo1,
':free_elo1' => $player->free_elo1,
':elo2' => $player->elo2,
':free_elo2' => $player->free_elo2
]
);
}
function regex_print_players(array $players)
{
$first = true;
foreach ($players as $player) {
$name = str_replace("\-", "-", preg_quote($player->name));
if ($first) {
echo $name;
$first = false;
} else {
echo "|" . $name;
}
}
}