From 35c1bf0c08872fdc14d895fb6c8beedce7201683 Mon Sep 17 00:00:00 2001 From: kremsy Date: Tue, 31 Dec 2013 18:15:45 +0100 Subject: [PATCH] statisticsmanager definestatsmetadata --- .../core/Statistics/StatisticManager.php | 60 +++++++++++++++---- 1 file changed, 47 insertions(+), 13 deletions(-) diff --git a/application/core/Statistics/StatisticManager.php b/application/core/Statistics/StatisticManager.php index 5255c92e..25ce2e21 100644 --- a/application/core/Statistics/StatisticManager.php +++ b/application/core/Statistics/StatisticManager.php @@ -13,12 +13,13 @@ class StatisticManager { * Constants */ const TABLE_STATMETADATA = 'mc_statmetadata'; - const TABLE_STATISTICS = 'mc_statistics'; + const TABLE_STATISTICS = 'mc_statistics'; /** * Private Properties */ private $maniaControl = null; + private $mysqli = null; /** * Construct player manager @@ -27,37 +28,68 @@ class StatisticManager { */ public function __construct(ManiaControl $maniaControl) { $this->maniaControl = $maniaControl; + $this->mysqli = $this->maniaControl->database->mysqli; $this->initTables(); } + /** + * Defines a Stat + * + * @param string $statName + * @param string $statDescription + */ + public function defineStatMetaData($statName, $statDescription = '') { + $query = "INSERT IGNORE INTO `" . self::TABLE_STATMETADATA . "` ( + `name`, + `description` + ) VALUES ( + ?, ? + );"; + $statement = $this->mysqli->prepare($query); + if($this->mysqli->error) { + trigger_error($this->mysqli->error); + return false; + } + $statement->bind_param('ss', $statName, $statDescription); + $statement->execute(); + if($statement->error) { + trigger_error($statement->error); + $statement->close(); + return false; + } + + $statement->close(); + } + /** * Initialize necessary database tables * * @return bool */ private function initTables() { - $mysqli = $this->maniaControl->database->mysqli; - $query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_STATMETADATA. "` ( + $query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_STATMETADATA . "` ( `index` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, - `description` varchar(150) COLLATE utf8_unicode_ci NOT NULL, + `description` varchar(150) COLLATE utf8_unicode_ci, PRIMARY KEY (`index`), UNIQUE KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Statistics Meta Data' AUTO_INCREMENT=1;"; - $statement = $mysqli->prepare($query); - if ($mysqli->error) { - trigger_error($mysqli->error, E_USER_ERROR); + $statement = $this->mysqli->prepare($query); + if($this->mysqli->error) { + trigger_error($this->mysqli->error, E_USER_ERROR); + return false; } $statement->execute(); - if ($statement->error) { + if($statement->error) { trigger_error($statement->error, E_USER_ERROR); + return false; } $statement->close(); - $query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_STATISTICS. "` ( + $query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_STATISTICS . "` ( `statId` int(11) NOT NULL AUTO_INCREMENT, `playerId` int(11) NOT NULL, `serverId` int(11) NOT NULL, @@ -65,14 +97,16 @@ class StatisticManager { UNIQUE KEY `unique` (`statId`,`playerId`,`serverId`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Statistics Meta Data' AUTO_INCREMENT=1;"; - $statement = $mysqli->prepare($query); - if ($mysqli->error) { - trigger_error($mysqli->error, E_USER_ERROR); + $statement = $this->mysqli->prepare($query); + if($this->mysqli->error) { + trigger_error($this->mysqli->error, E_USER_ERROR); + return false; } $statement->execute(); - if ($statement->error) { + if($statement->error) { trigger_error($statement->error, E_USER_ERROR); + return false; } $statement->close();