OSDN Git Service

[feature]第1領域、第2領域検索用のカラムをscore_realmsテーブルに追加
[hengband/web.git] / db_common.inc
index 9a10c79..575486f 100644 (file)
@@ -10,6 +10,21 @@ class ScoreDB
         $this->set_sort_mode(filter_input(INPUT_GET, 'sort'));
     }
 
+    public function get_defines()
+    {
+        $id_define_array = [];
+        $tables = [['race', 'races'], ['class', 'classes'], ['personality', 'personalities'], ['realm', 'realms']];
+        foreach ($tables as $t) {
+            $id_define_array[$t[0]] = [];
+            $stmt = $this->dbh->query("SELECT {$t[0]}_id, {$t[0]}_name FROM {$t[1]} ORDER BY {$t[0]}_id");
+            foreach ($stmt->fetchAll(PDO::FETCH_NUM) as $row) {
+                $id_define_array[$t[0]][intval($row[0])] = $row[1];
+            }
+        }
+
+        return $id_define_array;
+    }
+
     /**
      * スコア表示モードを設定する
      *
@@ -404,9 +419,9 @@ EOM
         $realm_insert_stmt = $this->dbh->prepare(
             <<<EOM
 INSERT INTO score_realms
- (score_id, realm_id)
+ (score_id, realm_id, realm_seq)
 SELECT
-  ?, realm_id
+  ?, realm_id, ?
 FROM
   realms
 WHERE
@@ -426,8 +441,8 @@ EOM
             //       したがってlastInsertIdで追加されたスコアのscore_idを取得可能
             $score_id = $this->dbh->lastInsertId();
 
-            foreach ($score_data['realm_info'] as $realm_name) {
-                if ($realm_insert_stmt->execute([$score_id, $realm_name]) === FALSE ||
+            foreach ($score_data['realm_info'] as $realm_seq => $realm_name) {
+                if ($realm_insert_stmt->execute([$score_id, $realm_seq + 1, $realm_name]) === FALSE ||
                     $realm_insert_stmt->rowCount() !== 1) {
                     $dbh->rollBack();
                     return FALSE;