回答編集履歴
6
説明修正
test
CHANGED
@@ -48,13 +48,13 @@
|
|
48
48
|
|
49
49
|
単に最大値+1をとりたいだけなら```select max(reserveID)+1 FROM yoyaku_tbl```だけで良いはず。また、別名つけておくととりやすくなります。
|
50
50
|
|
51
|
-
例:select max(reserveID)+1 as
|
51
|
+
例:select max(reserveID)+1 as new_reserve_id FROM yoyaku_tbl
|
52
52
|
|
53
53
|
|
54
54
|
|
55
55
|
```PHP
|
56
56
|
|
57
|
-
$row = $stmt
|
57
|
+
$row = $stmt->fetch(PDO::FETCH_ASSOC); //SQLにより最大値+1の情報のみ1行1カラムのみが取得されている
|
58
58
|
|
59
59
|
|
60
60
|
|
@@ -70,7 +70,7 @@
|
|
70
70
|
|
71
71
|
<td>
|
72
72
|
|
73
|
-
{$row["
|
73
|
+
{$row["new_reserve_id"]}
|
74
74
|
|
75
75
|
FRM1;
|
76
76
|
|
5
修正
test
CHANGED
@@ -82,7 +82,7 @@
|
|
82
82
|
|
83
83
|
あとyambejpさんのご指摘のようにhtmlエスケープをかけておくと良いでしょう。
|
84
84
|
|
85
|
-
※htmlに
|
85
|
+
※ご提示ソース内のhtmlに記述ミスがあったので勝手に修正してます。比較して探してみてください。
|
86
86
|
|
87
87
|
|
88
88
|
|
4
修正
test
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
既に指摘があるか
|
35
|
+
既に指摘があるかとは思います、おそらくそのSQLでは予約ID+1は取得できません。
|
36
36
|
|
37
37
|
SQLのエラーがでそうです。
|
38
38
|
|
@@ -40,13 +40,13 @@
|
|
40
40
|
|
41
41
|
|
42
42
|
|
43
|
-
|
43
|
+
提示ソースのように```reserveID(max)```と書いてしまうと**reserveID()という関数にmaxという引数を渡している**ことになります。
|
44
44
|
|
45
|
-
|
45
|
+
「そんな関数ないよ(&引数maxに対して「そんなカラムないよ」)」ってSQLのエラーが出るんじゃないでしょうか。
|
46
46
|
|
47
|
-
「そんな関数ないよ」ってSQLのエラーが出るんじゃないでしょうか。
|
48
47
|
|
48
|
+
|
49
|
-
別名つけておくととりやすくなります。
|
49
|
+
単に最大値+1をとりたいだけなら```select max(reserveID)+1 FROM yoyaku_tbl```だけで良いはず。また、別名つけておくととりやすくなります。
|
50
50
|
|
51
51
|
例:select max(reserveID)+1 as max_reserve_id FROM yoyaku_tbl
|
52
52
|
|
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
|
82
82
|
|
83
|
-
あとyambejpさんのご指摘のようにhtmlエスケープ
|
83
|
+
あとyambejpさんのご指摘のようにhtmlエスケープをかけておくと良いでしょう。
|
84
84
|
|
85
85
|
※htmlにも記載ミスがあったので勝手に修正してます。比較して探してみてください。
|
86
86
|
|
3
修正
test
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
別名つけておくととりやすくなります。
|
50
50
|
|
51
|
-
|
51
|
+
例:select max(reserveID)+1 as max_reserve_id FROM yoyaku_tbl
|
52
52
|
|
53
53
|
|
54
54
|
|
@@ -62,7 +62,7 @@
|
|
62
62
|
|
63
63
|
<form action="./reserve_scr.php" method="get">
|
64
64
|
|
65
|
-
<table border=0">
|
65
|
+
<table border="0">
|
66
66
|
|
67
67
|
<tr>
|
68
68
|
|
@@ -72,9 +72,17 @@
|
|
72
72
|
|
73
73
|
{$row["max_reserve_id"]}
|
74
74
|
|
75
|
+
FRM1;
|
76
|
+
|
77
|
+
|
78
|
+
|
75
79
|
```
|
76
80
|
|
81
|
+
|
82
|
+
|
77
83
|
あとyambejpさんのご指摘のようにhtmlエスケープはかけておくと良いでしょう。
|
84
|
+
|
85
|
+
※htmlにも記載ミスがあったので勝手に修正してます。比較して探してみてください。
|
78
86
|
|
79
87
|
|
80
88
|
|
2
変更
test
CHANGED
@@ -40,11 +40,41 @@
|
|
40
40
|
|
41
41
|
|
42
42
|
|
43
|
-
単に最大値とりたいだけならおそらく```select max(reserveID) FROM yoyaku_tbl```だけで良いはず。
|
43
|
+
単に最大値とりたいだけならおそらく```select max(reserveID)+1 FROM yoyaku_tbl```だけで良いはず。
|
44
44
|
|
45
45
|
提示ソースのように```reserveID(max)```と書いてしまうと**reserveID()という自作の関数にmaxという引数を渡している**ことになります。
|
46
46
|
|
47
47
|
「そんな関数ないよ」ってSQLのエラーが出るんじゃないでしょうか。
|
48
|
+
|
49
|
+
別名つけておくととりやすくなります。
|
50
|
+
|
51
|
+
```select max(reserveID)+1 as max_reserve_id FROM yoyaku_tbl```
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
```PHP
|
56
|
+
|
57
|
+
$row = $stmt -> fetch(PDO::FETCH_ASSOC); //max()により最大値+1の情報のみ1行が取得されている
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
print <<< FRM1
|
62
|
+
|
63
|
+
<form action="./reserve_scr.php" method="get">
|
64
|
+
|
65
|
+
<table border=0">
|
66
|
+
|
67
|
+
<tr>
|
68
|
+
|
69
|
+
<td>予約番号</td>
|
70
|
+
|
71
|
+
<td>
|
72
|
+
|
73
|
+
{$row["max_reserve_id"]}
|
74
|
+
|
75
|
+
```
|
76
|
+
|
77
|
+
あとyambejpさんのご指摘のようにhtmlエスケープはかけておくと良いでしょう。
|
48
78
|
|
49
79
|
|
50
80
|
|
1
2つ目の回答を追記
test
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# エラーについて
|
2
|
+
|
1
3
|
ヒアドキュメント内における連想配列の展開の仕方ではないでしょうか?
|
2
4
|
|
3
5
|
|
@@ -21,3 +23,33 @@
|
|
21
23
|
ヒアドキュメントの閉じ部分も含めたソース全体をご提示いただいたわけではないので
|
22
24
|
|
23
25
|
他にもあるかもしれませんが・・ひとまず。
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
# SQLについて
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
既に指摘があるかもしれませんが、おそらくそのSQLでは予約ID+1は取得できないと思います。
|
36
|
+
|
37
|
+
SQLのエラーがでそうです。
|
38
|
+
|
39
|
+
> select * FROM yoyaku_tbl where reserveID(max)
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
単に最大値とりたいだけならおそらく```select max(reserveID) FROM yoyaku_tbl```だけで良いはず。
|
44
|
+
|
45
|
+
提示ソースのように```reserveID(max)```と書いてしまうと**reserveID()という自作の関数にmaxという引数を渡している**ことになります。
|
46
|
+
|
47
|
+
「そんな関数ないよ」ってSQLのエラーが出るんじゃないでしょうか。
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
プログラミング言語からSQLを用いてDB問い合わせを行う際は、
|
52
|
+
|
53
|
+
実際にDBに対してツールなどで直接SQLを実行して、問題なく意図通りに動くかどうかを確認されたほうが良いと思います。
|
54
|
+
|
55
|
+
mysqlならphpmyadmin、postgreSQLならpgadminなど、ですね。
|