質問編集履歴
6
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -258,7 +258,7 @@
|
|
258
258
|
|
259
259
|
---
|
260
260
|
|
261
|
-
追記:phpは7、mysqlは5.5、model.phpにて$result===falseについては他のブックでも使っており特に問題ありません
|
261
|
+
追記:phpは7、mysqlは5.5、model.phpにてSQL処理後のチェック$result===falseについては他のブックでも使っており特に問題ありません
|
262
262
|
|
263
263
|
|
264
264
|
|
@@ -294,7 +294,11 @@
|
|
294
294
|
|
295
295
|
②$msgにも…に登録しました!!というメッセージが入ることは良いのですが、Array([0])=>という余計なデータが入ってしまう
|
296
296
|
|
297
|
+
③$msgも$err_msgどちらも配列となります。またSQL実行する際に初期化しておりますが、
|
298
|
+
|
297
|
-
|
299
|
+
これらの変数に余計なデータがいったいどこで入るのかわからない状況です。
|
300
|
+
|
301
|
+
④var_dumpにて初期化した時点ですでに入っている様に思います。
|
298
302
|
|
299
303
|
※SQLのinsertとupdate文についてはphpmyadminなどで実行すると問題無く追加されます…
|
300
304
|
|
5
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,6 +54,60 @@
|
|
54
54
|
|
55
55
|
modelphpで
|
56
56
|
|
57
|
+
//重複データチェック
|
58
|
+
|
59
|
+
function check_contract_date($link, $id, $name, $err_msg) {
|
60
|
+
|
61
|
+
$flg = FALSE;
|
62
|
+
|
63
|
+
$data[] = "";
|
64
|
+
|
65
|
+
$count_rows = "";
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
$sql = "SELECT * FROM contract_date WHERE id = '$id' AND name = '$name'";
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
$result = mysqli_query($link, $sql);
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
if ($result === false) {
|
78
|
+
|
79
|
+
$err_msg[] = 'SQLに失敗しました!';
|
80
|
+
|
81
|
+
} else {
|
82
|
+
|
83
|
+
$count_rows = mysqli_num_rows($result);
|
84
|
+
|
85
|
+
while ($row = mysqli_fetch_assoc($result)) {
|
86
|
+
|
87
|
+
$data[] = $row;
|
88
|
+
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
if ($count_rows > 0) {
|
94
|
+
|
95
|
+
$flg = TRUE;
|
96
|
+
|
97
|
+
} else {
|
98
|
+
|
99
|
+
$flg = FALSE;
|
100
|
+
|
101
|
+
}
|
102
|
+
|
103
|
+
}
|
104
|
+
|
105
|
+
return array($flg, $err_msg);
|
106
|
+
|
107
|
+
}
|
108
|
+
|
109
|
+
|
110
|
+
|
57
111
|
//contract_date用登録処理----------------------------------------------------------------------
|
58
112
|
|
59
113
|
function insert_contract_date($link, $today, $id, $name, $mail, $fusaick, $created_date, $corporation, $department, $hire_date, $manager, $telephone, $bring1, $bring2, $bring3, $login_name, $err_msg) {
|
4
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -210,7 +210,7 @@
|
|
210
210
|
|
211
211
|
![イメージ説明](d3347f12aa310bbcffb820df12917c78.jpeg)
|
212
212
|
|
213
|
-
上のArray([0]=>は$msgに入
|
213
|
+
上のArray([0]=>は$msgに入り、下のArray()は$err_msgに入ってしまいます
|
214
214
|
|
215
215
|
---
|
216
216
|
|
3
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
```ここに言語を入力
|
2
|
+
|
1
|
-
|
3
|
+
メインphpで
|
2
4
|
|
3
5
|
// 更新系の処理を行う前にトランザクション開始(オートコミットをオフ)
|
4
6
|
|
@@ -48,7 +50,9 @@
|
|
48
50
|
|
49
51
|
}
|
50
52
|
|
53
|
+
|
54
|
+
|
51
|
-
|
55
|
+
modelphpで
|
52
56
|
|
53
57
|
//contract_date用登録処理----------------------------------------------------------------------
|
54
58
|
|
@@ -170,7 +174,9 @@
|
|
170
174
|
|
171
175
|
|
172
176
|
|
177
|
+
|
178
|
+
|
173
|
-
|
179
|
+
上記を実行するとメインの最終トランザクション確定部分で$err_msgにArray()…みたいなのが必ず入ってしまう
|
174
180
|
|
175
181
|
ちなみに$msgにもArray()が入ってしまいます。
|
176
182
|
|
@@ -194,7 +200,9 @@
|
|
194
200
|
|
195
201
|
|
196
202
|
|
197
|
-
|
203
|
+
```
|
204
|
+
|
205
|
+
---
|
198
206
|
|
199
207
|
追記:phpは7、mysqlは5.5、model.phpにて$result===falseについては他のブックでも使っており特に問題ありません
|
200
208
|
|
@@ -204,7 +212,7 @@
|
|
204
212
|
|
205
213
|
上のArray([0]=>は$msgに入いり、下のArray()は$err_msgに入ってしまいます
|
206
214
|
|
207
|
-
|
215
|
+
---
|
208
216
|
|
209
217
|
追記2:返信まことにありがとうございます。
|
210
218
|
|
2
追記2
test
CHANGED
File without changes
|
test
CHANGED
@@ -203,3 +203,37 @@
|
|
203
203
|
![イメージ説明](d3347f12aa310bbcffb820df12917c78.jpeg)
|
204
204
|
|
205
205
|
上のArray([0]=>は$msgに入いり、下のArray()は$err_msgに入ってしまいます
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
追記2:返信まことにありがとうございます。
|
210
|
+
|
211
|
+
分かりにくい記載になり大変申し訳ありません。
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
やりたい事:
|
216
|
+
|
217
|
+
①DBに同ID同氏名のキーを使い重複があるかチェックをします
|
218
|
+
|
219
|
+
②重複データがある場合、update処理、ない場合insert処理をおこないたい
|
220
|
+
|
221
|
+
③その際、model.phpにてSQLの処理をおこないエラーが無く実行されれば$msgへ完了メッセージ代入
|
222
|
+
|
223
|
+
④メイン.phpにもどりSQL処理にてエラーが無い($err_msgが空)の場合、トランザクション確定
|
224
|
+
|
225
|
+
⑤最後に完了処理のためview.phpに戻り$msgのメッセージを表示して完了を予定しております
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
問題:
|
230
|
+
|
231
|
+
①$err_msgにArray()というデータが入ってしまうため、トランザクションが実行されない
|
232
|
+
|
233
|
+
②$msgにも…に登録しました!!というメッセージが入ることは良いのですが、Array([0])=>という余計なデータが入ってしまう
|
234
|
+
|
235
|
+
③これらの余計なデータがどこで入るのかわからない。
|
236
|
+
|
237
|
+
※SQLのinsertとupdate文についてはphpmyadminなどで実行すると問題無く追加されます…
|
238
|
+
|
239
|
+
宜しくお願いいたします
|
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -191,3 +191,15 @@
|
|
191
191
|
mysqli_rollback($link);
|
192
192
|
|
193
193
|
}
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
追記:phpは7、mysqlは5.5、model.phpにて$result===falseについては他のブックでも使っており特に問題ありません
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
![イメージ説明](d3347f12aa310bbcffb820df12917c78.jpeg)
|
204
|
+
|
205
|
+
上のArray([0]=>は$msgに入いり、下のArray()は$err_msgに入ってしまいます
|