質問編集履歴

6

追記

2018/10/16 06:33

投稿

kokokooooooooo
kokokooooooooo

スコア18

test CHANGED
File without changes
test CHANGED
@@ -120,34 +120,18 @@
120
120
 
121
121
  ー追記ー
122
122
 
123
- pre_memberテーブルにはオートインクリーメントは、つけてです
123
+ やっと他の皆さんがいいたいことが、わかりました
124
124
 
125
+ 流れとして
126
+
127
+ 1、pre_memberテーブルで、メールアドレスやidといった登録は完了している
128
+
125
- どちらも自動採番にすると何らかの手違いで番号がずれてしまうとがあるかもしれないので、taskテーブルのレコードを基準にpre_memberブルのflag「1」の値に更新しています。
129
+ に$id = intval($db->lastInsertId())で、直前に挿入したデタid取得
130
+
131
+ 3、そのidをもとにflagカラムを「1」にupdateしようとしていた
132
+
133
+ 4、とうぜん、そんなidは登録されていないために、何も起こらない。
126
134
 
127
135
 
128
136
 
129
- idってどこからとった値ですか?
130
-
131
- オートインクリメントかなんかですか?
132
-
133
- idは、taskテーブルのものは、オートインクリーメントで自動採番にしています。
134
-
135
-
136
-
137
- 上記のソースはアドレスリンククリック時の動きですか?
138
-
139
- このソースは、登録完了ページ
137
+ きない原因がわかりました
140
-
141
-
142
-
143
- //taskテーブルに挿入したデータのIDを取得
144
-
145
-
146
-
147
- ```$id = intval($db->lastInsertId());```
148
-
149
- を使うことで、taskテーブルに直近にINSERTされたデータのidを取得することが、できるのかなと思って使いました。
150
-
151
- そのidに対応するように、pre_memberのidが対応して、flagカラムをUPDATEをすれば、UPDATEできるのかなと思って書きました。
152
-
153
- だから、分かる人からすると、まちがっているソースになっているかもしれないです

5

やりたいこと

2018/10/16 06:33

投稿

kokokooooooooo
kokokooooooooo

スコア18

test CHANGED
File without changes
test CHANGED
@@ -32,9 +32,7 @@
32
32
 
33
33
  taskテーブルとpre_memberテーブルは主キーは同じidカラム使用しています。taskテーブルのレコードを基準にpre_memberテーブルのflagを「1」の値にUPDATEしたいです。
34
34
 
35
-
36
-
37
- 最後の本登録で会員情報をDBに入れる際に、pre_memberのflagを「1」にUPDATEしたいと思っています。
35
+ 最後の本登録で会員情報をDBに入れる際に、pre_memberのidをtasテーブルのidに対応させて、なおかつ、flagを「1」にUPDATEしたいと思っています。
38
36
 
39
37
  このソースのままだと、pre_memberテーブルのflagが「1」に更新されないです。
40
38
 

4

追記

2018/10/16 05:26

投稿

kokokooooooooo
kokokooooooooo

スコア18

test CHANGED
File without changes
test CHANGED
@@ -125,3 +125,31 @@
125
125
  pre_memberテーブルには、オートインクリーメントは、つけていないです。
126
126
 
127
127
  どちらも自動採番にすると、何らかの手違いで番号がずれてしまうことがあるかもしれないので、taskテーブルのレコードを基準にpre_memberテーブルのflagを「1」の値に更新しています。
128
+
129
+
130
+
131
+ idってどこからとった値ですか?
132
+
133
+ オートインクリメントかなんかですか?
134
+
135
+ idは、taskテーブルのものは、オートインクリーメントで自動採番にしています。
136
+
137
+
138
+
139
+ 上記のソースはアドレスリンククリック時の動きですか?
140
+
141
+ このソースは、登録完了ページです。
142
+
143
+
144
+
145
+ //taskテーブルに挿入したデータのIDを取得
146
+
147
+
148
+
149
+ ```$id = intval($db->lastInsertId());```
150
+
151
+ を使うことで、taskテーブルに直近にINSERTされたデータのidを取得することが、できるのかなと思って使いました。
152
+
153
+ そのidに対応するように、pre_memberのidが対応して、flagカラムをUPDATEをすれば、UPDATEできるのかなと思って書きました。
154
+
155
+ だから、分かる人からすると、まちがっているソースになっているかもしれないです

3

追記

2018/10/16 05:02

投稿

kokokooooooooo
kokokooooooooo

スコア18

test CHANGED
File without changes
test CHANGED
@@ -117,3 +117,11 @@
117
117
  ?>
118
118
 
119
119
  ```
120
+
121
+
122
+
123
+ ー追記ー
124
+
125
+ pre_memberテーブルには、オートインクリーメントは、つけていないです。
126
+
127
+ どちらも自動採番にすると、何らかの手違いで番号がずれてしまうことがあるかもしれないので、taskテーブルのレコードを基準にpre_memberテーブルのflagを「1」の値に更新しています。

2

ソースの補足

2018/10/16 04:31

投稿

kokokooooooooo
kokokooooooooo

スコア18

test CHANGED
File without changes
test CHANGED
@@ -96,6 +96,10 @@
96
96
 
97
97
  $id = intval($db->lastInsertId());
98
98
 
99
+
100
+
101
+ // taskテーブルに挿入したレコードのIDを元にpre_memberテーブルのデータを更新
102
+
99
103
  $stmt = $db->prepare(
100
104
 
101
105
  "UPDATE pre_member SET flag=1 WHERE id=(:id)" );

1

「;」が余計についていたので、消去

2018/10/16 04:19

投稿

kokokooooooooo
kokokooooooooo

スコア18

test CHANGED
File without changes
test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
  $stmt->bindParam(':id', $id,PDO::PARAM_INT);
104
104
 
105
- echo "登録が完了しました";;
105
+ echo "登録が完了しました";
106
106
 
107
107
  } catch (PDOException $e) {
108
108