/** * @param $id * @return bool|University */ public function getOne($id) { $query = "SELECT id, name, player_id, money, lectures\n FROM universities WHERE id = ?"; $this->db->query($query, [$id]); $result = $this->db->row(); if (empty($result)) { return false; } $player = PlayerRepository::create()->getOne($result['player_id']); $university = new University($result['id'], $result['name'], $player, $result['money'], $result['lectures']); return $university; }
/** * @param $levelId * @param $stageId * @return bool|StageLevel */ public function getOne($levelId, $stageId) { $query = "SELECT stage_id, level_id, money_consume, lectures_consume, money_income, lectures_income FROM stage_levels WHERE level_id = ? AND stage_id = ?"; $this->db->query($query, [$levelId, $stageId]); $result = $this->db->row(); if (empty($result)) { return false; } $this->db->query("SELECT id, name FROM stages WHERE id = ?", [$stageId]); $stageResult = $this->db->row(); $stage = new Stage($stageResult['id'], $stageResult['name']); $stageLevel = new StageLevel($stage, $result['level_id'], $result['money_consume'], $result['lectures_consume'], $result['money_income'], $result['lectures_income']); return $stageLevel; }
public function getOne($id) { $query = "SELECT id, username, password\n FROM players WHERE id = ?"; $this->db->query($query, [$id]); $result = $this->db->row(); if (empty($result)) { return false; } $player = new Player($result['username'], $result['password'], $result['id']); $this->db->query("SELECT id, name, player_id, money, lectures\n FROM universities WHERE player_id = ?", [$id]); $univiersitiesResult = $this->db->fetchAll(); $universities = []; foreach ($univiersitiesResult as $univerisityResult) { $universities[] = new University($univerisityResult['id'], $univerisityResult['name'], $player, $univerisityResult['money'], $univerisityResult['lectures']); } $this->db->query("SELECT id, player_id, university_id, stage_id, level_id\n FROM player_stages WHERE player_id = ?", [$id]); $playerStagesResult = $this->db->fetchAll(); $playerStagesCollection = []; foreach ($playerStagesResult as $playerStageResult) { $this->db->query("SELECT id, name FROM stages WHERE id = ?", [$playerStageResult['stage_id']]); $stageResult = $this->db->row(); $stage = new Stage($stageResult['id'], $stageResult['name']); $stageLevelsCollection = []; $this->db->query("SELECT stage_id, level_id, money_consume, lectures_consume, money_income, lectures_income FROM stage_levels WHERE stage_id = ? AND level_id = ?", [$stage->getId(), $playerStageResult['level_id']]); $stageLevelsResult = $this->db->fetchAll(); $university = current(array_filter($universities, function (University $u) use($playerStageResult) { return $u->getId() == $playerStageResult['university_id']; })); foreach ($stageLevelsResult as $stageLevelResult) { $stageLevel = new StageLevel($stage, $stageLevelResult['level_id'], $stageLevelResult['money_consume'], $stageLevelResult['lectures_consume'], $stageLevelResult['money_income'], $stageLevelResult['lectures_income']); $stageLevelsCollection[] = $stageLevel; $playerStagesCollection[] = new PlayerStage($player, $stage, $stageLevel, $university); } } $player->setUniversities($universities); $player->setStages($playerStagesCollection); return $player; }