OSDN Git Service

d6aaed01350843f09a11a6388048550d76c858cf
[hengband/web.git] / score / popularity_ranking.php
1 <?php
2 //ini_set('display_errors', 'On');
3
4 ini_set('log_errors', 'On');
5 ini_set('error_log', 'errors/'.pathinfo(__FILE__, PATHINFO_FILENAME).'.log');
6
7 ini_set('zlib.output_compression', 'On');
8
9 require_once "db_common.inc";
10
11 function print_popularity_table($stat, $id_name, $name)
12 {
13     echo <<<EOM
14 <div id="{$id_name}">
15 <table class="tablesorter statistics_table">
16 <thead>
17 <tr>
18 <th>$name</th>
19 EOM;
20     
21     foreach ([
22         '計', '男性', '女性', '勝利', '平均スコア', '最大スコア',
23     ] as $name) {
24         echo "<th>${name}</th>";
25     }
26     echo "</tr>\n";
27     echo "</thead>\n";
28
29     foreach ($stat as $k => $s) {
30         $name_link = "<a href='score_ranking.php?{$id_name}={$s['id']}'>{$s['name']}</a></td>";
31         $average_score = floor($s['average_score']);
32         echo <<<EOM
33 <tr>
34 <td>$name_link</td>
35 <td>{$s['total_count']}</td>
36 <td>{$s['male_count']}</td>
37 <td>{$s['female_count']}</td>
38 <td>{$s['winner_count']}</td>
39 <td>$average_score</td>
40 <td>{$s['max_score']}</td>
41 </tr>
42 EOM;
43     }
44
45     echo "</table>";
46     echo "</div>";
47 }
48
49 function print_realm_popularity_table($stat, $id_name)
50 {
51     // 魔法領域の統計を職業ごとにグループ分け
52     $class_ids = array_unique(array_column($stat, "class_id"));
53     $class_realm_stat_list = array_fill_keys($class_ids, []);
54
55     foreach ($stat as $s) {
56         $class_realm_stat_list[intval($s["class_id"])][] = $s;
57     }
58
59     echo "<div id=\"{$id_name}\">";
60
61     // 職業ごとにテーブルを表示
62     foreach ($class_realm_stat_list as $class_id => $class_realm_stat) {
63         if (count($class_realm_stat) <= 1) continue; // 領域固定の職業は飛ばす
64
65         $class_name = $class_realm_stat[0]['class_name'];
66
67         echo <<<EOM
68 <table class="tablesorter statistics_table" id="${id_name}">
69 <thead>
70 <tr>
71 <th>{$class_name}</th>
72 EOM;
73         foreach ([
74             '計', '男性', '女性', '勝利', '平均スコア', '最大スコア',
75         ] as $th_name) {
76             echo "<th>${th_name}</th>";
77         }
78         echo "</tr>\n";
79         echo "</thead>\n";
80
81         foreach ($class_realm_stat as $realm) {
82             $name_link = "<a href='score_ranking.php?class_id={$class_id}&{$id_name}={$realm['realm_id']}'>{$realm['realm_name']}</a></td>";
83             $average_score = floor($realm['average_score']);
84             echo <<<EOM
85 <tr>
86 <td>$name_link</td>
87 <td>{$realm['total_count']}</td>
88 <td>{$realm['male_count']}</td>
89 <td>{$realm['female_count']}</td>
90 <td>{$realm['winner_count']}</td>
91 <td>$average_score</td>
92 <td>{$realm['max_score']}</td>
93 </tr>
94 EOM;
95         }
96
97         echo "</table>";
98     }
99     echo "</div>";
100 }
101
102 $db = new ScoreDB();
103
104 $time_start = microtime(true);
105
106 $statistics = $db->get_statistics_tables('total_count');
107
108 $query_time = microtime(true) - $time_start;
109 ?>
110
111 <!DOCTYPE html>
112
113 <html lang="jp">
114         <head>
115                 <meta charset="utf-8"/>
116                 <link rev=made href="mailto:hengband-dev@lists.sourceforge.jp">
117                 <link rel="stylesheet" type="text/css" href="/hengband.css">
118                 <link rel="stylesheet" type="text/css" href="tablesorter-theme/style.css">
119                 <link rel="alternate" title="変愚蛮怒 新着スコア" href="feed/newcome-atom.xml" type="application/atom+xml" />
120                 <script
121                 src="https://code.jquery.com/jquery-3.3.1.min.js"
122                 integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
123                 crossorigin="anonymous"></script>
124
125                 <script src="jquery.tablesorter.min.js" type="text/javascript"></script>
126                 <script src="popularity_ranking.js" type="text/javascript"></script>
127                 <title>変愚蛮怒 公式WEB スコアランキング 人気のある種族・職業・性格・魔法領域</title>
128         </head>
129
130         <body>
131
132                 <header>
133
134                         <section id="title">
135                                 <img class="tama1" src="/image/tama.gif" alt="tama">
136                                 <img class="tama2" src="/image/tama.gif" alt="tama">
137                                 <img class="tama3" src="/image/tama.gif" alt="tama">
138                                 <img class="tama4" src="/image/tama.gif" alt="tama">
139                                 <img id="hengTitle" src="/image/hengband_title.png" alt="変愚蛮怒 Hengband">
140                                 <img class="tama4" src="/image/tama.gif" alt="tama">
141                                 <img class="tama3" src="/image/tama.gif" alt="tama">
142                                 <img class="tama2" src="/image/tama.gif" alt="tama">
143                                 <img class="tama1" src="/image/tama.gif" alt="tama">
144                         </section>
145
146                         <section id="mainMenu">
147                                 <a href="/index.html">トップ</a>
148                                 <a href="/download.html">ダウンロード</a>
149                                 <a href="/score.html">スコア</a>
150                                 <a href="/lists.html">コミュニティ</a>
151                                 <a href="/history.html">バージョン履歴</a>
152                                 <a href="/link.html">関連リンク</a>
153                                 <a href="/jlicense.html">著作権表記</a>
154                                 <span>English (Coming Soon)</span>
155                         </section>
156
157                 </header>
158  
159                 <div id="main">
160 <!--main contents-->
161 <h2>人気のある種族・職業・性格・魔法領域</h2>
162 <!--
163 <small>
164 <?php
165 echo sprintf("(%.2f 秒)", $query_time);
166 ?>
167 </small>
168 -->
169     <nobr>[ <a href="javascript:void(0)" class="table_select" id="race_id">種族</a> | <a href="javascript:void(0)" class="table_select" id="class_id">職業</a> | <a href="javascript:void(0)" class="table_select" id="personality_id">性格</a> ] [ <a href="javascript:void(0)" class="table_select" id="realm_id1">魔法領域1</a> | <a href="javascript:void(0)" class="table_select" id="realm_id2">魔法領域2</a> ]</nobr>
170
171 <?php
172 print_popularity_table($statistics['race'], 'race_id', "種族");
173 ?>
174 <?php
175 print_popularity_table($statistics['class'], 'class_id', "職業");
176 ?>
177 <?php
178 print_popularity_table($statistics['personality'], 'personality_id', "性格");
179 ?>
180 <?php
181 print_realm_popularity_table($statistics['realm1'], 'realm_id1');
182 ?>
183 <?php
184 print_realm_popularity_table($statistics['realm2'], 'realm_id2');
185 ?>
186
187                 </div>
188
189                 <footer>
190
191                         <section>
192                                 各ページへのリンクは御自由にどうぞ。/ Link Free.<br>
193                                 2018 Hengband Dev Team. <a href="mailto:hengband-dev@lists.sourceforge.jp">hengband-dev@lists.sourceforge.jp</a><br>
194                         </section>
195
196                         <section>
197                                 Powered by <a href="https://ja.osdn.net/" class="footer_banner">
198                                 <img src="https://ja.osdn.net/sflogo.php?group_id=541" border="0" alt="OSDN.jp">
199                                 </a>
200                         </section>
201
202                 </footer>
203
204         </body>
205
206 </html>