質問編集履歴

1

書式の改善

2019/07/06 16:35

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
-
4
-
5
- PHPでsqlite3を使ってテーブルを作成ます
3
+ テーブル1からテーブル2のようにい。
6
-
7
- 得点が挿入されているテーブル1のid,username,pointをpointの大きい順にソートしそれを元にテーブル2にid,username,point,rankingをinsertすることを実現しようとしています。
8
4
 
9
5
 
10
6
 
@@ -36,81 +32,13 @@
36
32
 
37
33
 
38
34
 
35
+ ```ここに言語を入力
39
36
 
40
-
41
- 以下のPHPのコードでは、毎度追加されるごとにランキングが変わるため、DELETEした後にINSERTでテーブル内容を挿入しようとしています。
37
+ INSERT INTO table_name2 SELECT id, username, point, RANK() OVER(ORDER BY point DESC) FROM table_name1
42
-
43
- しかしながら、PHPで作成するとエラーが出て、テーブル内容が削除された後に挿入ができていません。
44
-
45
-
46
38
 
47
39
  ```
48
40
 
49
- $dsn = sprintf('sqlite:database.db');
50
-
51
- try {
52
-
53
- $pdo = new PDO($dsn, "", "",array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
54
-
55
- $pdo->exec("DELETE FROM table_name2 where id > 0");
56
-
57
- $pdo->exec("INSERT INTO table_name2 SELECT id, username, point, RANK() OVER(ORDER BY point DESC) FROM table_name1");
58
-
59
- .....
60
-
61
- ```
62
-
63
- テーブル内容がDELETEで削除はできているがINSERTができていない。
64
-
65
- |id|username|point|RANK|
66
-
67
- |:--|:--:|--:|--:|
68
-
69
- ||||||
70
-
71
-
72
-
73
- ```
74
-
75
- SQLSTATE[HY000]: General error: 1 near "(": syntax error
76
-
77
- ```
78
-
79
-
80
-
81
- ### 試したこと
82
-
83
-
84
-
85
- DB Brower for SQLiteをつかって
86
-
87
- ```
88
-
89
- DELETE FROM table_name2 where id > 0;
90
-
91
- INSERT INTO table_name2 SELECT id, username, point, RANK() OVER(ORDER BY point DESC) FROM table_name1;
92
-
93
- SELECT * FROM ranking ORDER BY RANK ASC;
94
-
95
- ```
96
-
97
- 一度テーブル内容を削除してらテブル内容書き込みができています。
41
+ この場合どうすればよいの。上記のようなコドが使えるか?
98
-
99
-
100
-
101
- |id|username|point|RANK|
102
-
103
- |:--|:--:|--:|--:|
104
-
105
- |2|b|30|1|
106
-
107
- |3|c|23|2|
108
-
109
- |1|a|12|3|
110
-
111
-
112
-
113
- PHPのコードをどう改善したらよろしいのでしょうか。最終的にはSELECTでテーブルをPHP上に表示するようにします。
114
42
 
115
43
 
116
44
 
@@ -118,4 +46,4 @@
118
46
 
119
47
 
120
48
 
121
- xampp v3.2.3
49
+ php 7.1.