回答編集履歴

2

記述ミスがあった

2022/01/17 10:44

投稿

jinba
jinba

スコア310

test CHANGED
@@ -84,7 +84,7 @@
84
84
 
85
85
  簡単な説明ですがtimestampssが選択された時をトリガーに
86
86
  ```PHP
87
- $sql = "SELECT DISTINCT timestampss, swing_type FROM tennis_table WHRE timestampss = '選択された日付'";
87
+ $sql = "SELECT DISTINCT swing_type FROM tennis_table WHERE timestampss = '選択された日付'";
88
88
  ```
89
89
  といいったことをしなければなりません
90
90
 

1

コメントを受けて追記

2022/01/17 09:31

投稿

jinba
jinba

スコア310

test CHANGED
@@ -29,3 +29,73 @@
29
29
 
30
30
  1項目づつ調べ挑戦し、それでもわからなければ1項目づつ質問してみてはいかがでしょうか?
31
31
 
32
+ ---
33
+
34
+ **コメントを受け追記します**
35
+
36
+ そもそも
37
+ ```PHP
38
+ $sql = "SELECT timestampss,AVG(ball_speed),MAX(ball_speed),MIN(ball_speed),COUNT(ball_speed) FROM tennis_table GROUP BY timestampss";
39
+ ```
40
+ この1文でプルダウンの項目からアベレージ・最大値その他を抜き出そうとしているのが間違いです。
41
+
42
+ まずはプルダウン用のデータのみ引き出しましょう
43
+ ※DISTINCT句で重複なしで呼び出しています
44
+ ```PHP
45
+ //timestampssリスト用の呼出
46
+ $sql = "SELECT DISTINCT timestampss FROM tennis_table";
47
+ $stmt = $pdo->query($sql);
48
+ $timestampss_list = $stmt->fetchAll(PDO::FETCH_ASSOC);
49
+
50
+ //swing_typeリスト用の呼出
51
+ $sql = "SELECT DISTINCT swing_type FROM tennis_table";
52
+ $stmt = $pdo->query($sql);
53
+ $swing_type_list = $stmt->fetchAll(PDO::FETCH_ASSOC);
54
+ ```
55
+
56
+ その後それぞれを呼び出します
57
+ ```PHP・html
58
+ <label>
59
+ <select name="timestampss">
60
+ <?php foreach ($timestampss_list as $value) { ?>
61
+ <option value="<?php echo htmlspecialchars ($value["timestampss"], ENT_QUOTES, "UTF-8"); ?>">
62
+ <?php
63
+ echo htmlspecialchars($value["timestampss"], ENT_QUOTES, "UTF-8");
64
+ ?>
65
+ </option>
66
+ <?php } ?>
67
+ </select>
68
+ </label>
69
+
70
+ <label>
71
+ <select name="swing_type">
72
+ <?php foreach ($swing_type_list as $value) { ?>
73
+ <option value="<?php echo htmlspecialchars ($value["swing_type"], ENT_QUOTES, "UTF-8"); ?>">
74
+ <?php
75
+ echo htmlspecialchars($value["swing_type"], ENT_QUOTES, "UTF-8");
76
+ ?>
77
+ </option>
78
+ <?php } ?>
79
+ </select>
80
+ </label>
81
+ ```
82
+ また、timestampssの7/3選択した場合swing_typeに「BACKHAND_SPIN_FLAT」がありません
83
+ そこの問題を解決しようとなるとjavascriptを使う必要が出てきます。
84
+
85
+ 簡単な説明ですがtimestampssが選択された時をトリガーに
86
+ ```PHP
87
+ $sql = "SELECT DISTINCT timestampss, swing_type FROM tennis_table WHRE timestampss = '選択された日付'";
88
+ ```
89
+ といいったことをしなければなりません
90
+
91
+ 難しければ、「7/3」「BACKHAND_SPIN_FLAT」を選択した際は「該当データがありません」といった結果にするのもありでしょう
92
+
93
+ その後2つのプルダウンの選択値をpostもしくはjavascriptでどこかへ渡さなければなりません
94
+ 渡った先で平均値や最大値を求めます
95
+ 「AVG(ball_speed),MAX(ball_speed),MIN(ball_speed)…」の様にSQLで求めてもいいですし
96
+ SQLで「WHERE timestampss = 'プルダウン選択値' and swing_type = 'プルダウン選択値'」をすべて取得し
97
+ PHPで計算するという手もあります。
98
+
99
+
100
+
101
+