コード例 #1
0
ファイル: Room.php プロジェクト: vipp-art/VipNazoMOTRPG
 /**
  * 部屋作成
  * @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;
 }
コード例 #2
0
ファイル: Room.php プロジェクト: vipp-art/VipNazoMOTRPG
 /**
  * ルームの情報取得
  * @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);
 }
コード例 #3
0
ファイル: User.php プロジェクト: vipp-art/VipNazoMOTRPG
 /**
  * ユーザーを検索
  * @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;
 }
コード例 #4
0
ファイル: Group.php プロジェクト: vipp-art/VipNazoMOTRPG
 /**
  * ユーザー一覧取得
  * @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;
 }
コード例 #5
0
ファイル: Request.php プロジェクト: vipp-art/VipNazoMOTRPG
 /**
  * DBを閉じる
  * @param boolean $isRollback
  */
 private function closeDB($isRollback)
 {
     // DB切断
     $db = \mysql\connect(true);
     if ($db) {
         if ($isRollback) {
             $db->rollback();
         }
         $db->close();
     }
 }