/** * 部屋作成 * @param string $name * @param string $text */ public static function create($name, $text) { $sql = \mysql\connect(); $state = $sql->prepare('INSERT INTO `game_rooms` VALUES(0, ?, ?);'); $state->bind_param('ss', $name, $text); $state->execute(); $state->close(); return $sql->insert_id; }
/** * ルームの情報取得 * @param \Request $request */ function doGet($request) { $sql = \mysql\connect(); // state2検索用部屋ID $state2RoomId = 1; // state1結果用部屋ID $roomId = 0; // state1結果用部屋名 $roomName = ''; // state1結果用部屋説明 $roomNotice = ''; // state2結果用グループID $groupId = 0; // state2結果用グループ所属人数 $groupMemberCount = 0; $state = $sql->prepare('SELECT room.`room_id`, room.`room_name`, room.`notice` FROM `game_rooms` room ORDER BY `room_id` DESC;'); $state->bind_result($roomId, $roomName, $roomNotice); $state2 = $sql->prepare('SELECT g.`group_id`, ( SELECT COUNT(*) FROM `user_belongsto_group` belongs WHERE belongs.`group_id`=g.`group_id` ) FROM `user_groups` AS g WHERE g.`room_id`=? ORDER BY g.`group_id`;'); $state2->bind_param('i', $state2RoomId); $state2->bind_result($groupId, $groupMemberCount); $state->execute(); $state->store_result(); $result = array(); while ($state->fetch()) { $state2RoomId = $roomId; $state2->execute(); $state2->store_result(); if ($state2->num_rows() !== 2) { continue; } $groups = array(); while ($state2->fetch()) { $groups[] = array('id' => $groupId, 'count' => $groupMemberCount); } $result[] = array('room-id' => $roomId, 'name' => $roomName, 'notice' => $roomNotice, 'group1' => $groups[0], 'group2' => $groups[1]); } $state2->close(); $state->close(); $request->response('rooms', $result); }
/** * ユーザーを検索 * @param array $ids */ public static function find($ids) { $sql = \mysql\connect(); $query = '-1'; foreach ($ids as $i) { if (is_numeric($i)) { $query .= ','; $query .= $i; } } $users = []; $result = $sql->query('SELECT `user_id`, `user_name` FROM `users` WHERE `user_id` IN (' . $query . ');'); if ($result) { while ($row = $result->fetch_array()) { $users[] = array('id' => $row[0], 'name' => $row[1]); } $result->close(); } return $users; }
/** * ユーザー一覧取得 * @return array */ public function getUsers() { $users = []; $sql = \mysql\connect(); $state = $sql->prepare('SELECT `user_id` FROM `user_belongsto_group` WHERE `group_id`=?'); $state->bind_param('i', $this->id_); $state->execute(); $userId = -1; $state->bind_result($userId); $state->store_result(); while ($state->fetch()) { $users[] = $userId; } $state->close(); return $users; }
/** * DBを閉じる * @param boolean $isRollback */ private function closeDB($isRollback) { // DB切断 $db = \mysql\connect(true); if ($db) { if ($isRollback) { $db->rollback(); } $db->close(); } }