質問編集履歴

5

編集

2016/02/22 03:48

投稿

Z-TALBO
Z-TALBO

スコア525

test CHANGED
File without changes
test CHANGED
@@ -307,3 +307,25 @@
307
307
 
308
308
 
309
309
  となりました。
310
+
311
+
312
+
313
+ また、、、for文のところを少し変えてみました
314
+
315
+ ```PHP
316
+
317
+ for($i = 0; $i < $row_ct; $i++) {
318
+
319
+ $row['data'][$i]['dakoku'] = $_POST['data'][$i]['dakoku'];
320
+
321
+ $row['data'][$i]['hour'] = $_POST['data'][$i]['hour'];
322
+
323
+ $row['data'][$i]['minutes'] = $_POST['data'][$i]['minutes'];
324
+
325
+ $row['data'][$i]['id'] = $_POST['data'][$i]['id'];
326
+
327
+ }
328
+
329
+ ```
330
+
331
+ 上記のfor文の場合は、上記のforeachの結果に○○や××が無い状態でした。

4

追加

2016/02/22 03:48

投稿

Z-TALBO
Z-TALBO

スコア525

test CHANGED
File without changes
test CHANGED
@@ -273,3 +273,37 @@
273
273
 
274
274
 
275
275
  どうも、値がヒットしないんですよね。。。
276
+
277
+
278
+
279
+ ```PHP
280
+
281
+ foreach($row['data'] as $key) {
282
+
283
+ print_r($key);
284
+
285
+ print "<br><br>\n";
286
+
287
+ print "key['dakoku']=" . $key['dakoku'] . "<br>";
288
+
289
+ ```
290
+
291
+ 上記もやってみました。
292
+
293
+ // 結果
294
+
295
+ Array(['dakoku']=>○○['hour']=>○○['minutes']=>○○['id']=>○○)
296
+
297
+
298
+
299
+ key['dakoku']=
300
+
301
+ Array(['dakoku']=>××['hour']=>××['minutes']=>××['id']=>××)
302
+
303
+
304
+
305
+ key['dakoku']=
306
+
307
+
308
+
309
+ となりました。

3

修正

2016/02/22 03:42

投稿

Z-TALBO
Z-TALBO

スコア525

test CHANGED
File without changes
test CHANGED
@@ -155,3 +155,121 @@
155
155
 
156
156
 
157
157
  使い方などが間違っているのかもしれません。。。ご指摘ください。
158
+
159
+
160
+
161
+ ---------------------------------------
162
+
163
+ [追記]
164
+
165
+ ハードルが高いものの中回答いただきありがとうございます。
166
+
167
+ さて、現在悩んでいるのは教えていただいたコードを入れていくだけではなぜか、値まで辿り着かないという部分です。
168
+
169
+ 頭をリセットするために、最初から少しずつprint_rしながらやってみました。
170
+
171
+ ```PHP
172
+
173
+ // formからのname(確認のために記載だけ。。。)
174
+
175
+ name=data[添字]['dakoku']
176
+
177
+
178
+
179
+ $ary = $_POST['data'];
180
+
181
+ print_r($ary);
182
+
183
+ // 結果
184
+
185
+ // Array([0]=>Array(['dakoku']=>○○['hour']=>○○['minutes']=>○○['id']=>○○)[1]=>Array(['dakoku']=>××['hour']=>××['minutes']=>××['id']=>××)))
186
+
187
+
188
+
189
+ $row_ct = count($ary);
190
+
191
+ print_r($row_ct);
192
+
193
+ // 結果
194
+
195
+ // 2
196
+
197
+
198
+
199
+ for($i = 0; $i < $row_ct; $i++) {
200
+
201
+ $row = $_POST;
202
+
203
+ }
204
+
205
+ print_r($row);
206
+
207
+ // 結果
208
+
209
+ // Array([data]=>Array([0]=>Array(['dakoku']=>○○['hour']=>○○['minutes']=>○○['id']=>○○)[1]=>Array(['dakoku']=>××['hour']=>××['minutes']=>××['id']=>××)))
210
+
211
+
212
+
213
+ foreach($row['data'] as $key) {
214
+
215
+ print_r($key);
216
+
217
+ // Array(['dakoku']=>○○['hour']=>○○['minutes']=>○○['id']=>○○)Array(['dakoku']=>××['hour']=>××['minutes']=>××['id']=>××)
218
+
219
+
220
+
221
+ print_r($row);
222
+
223
+ // for文の結果と同じだが、2行2行の4行で表示
224
+
225
+
226
+
227
+ print_r($key['data']);
228
+
229
+ print_r($key['data'][0]);
230
+
231
+ print_r($key['data'][0]['dakoku']);
232
+
233
+ print_r($key['dakoku']);// ['hour']なども同様
234
+
235
+ // Null(画面に何も表示なし)
236
+
237
+
238
+
239
+ print_r($row['data']);
240
+
241
+ // Array([0]=>Array(['dakoku']=>○○['hour']=>○○['minutes']=>○○['id']=>○○)[1]=>Array(['dakoku']=>××['hour']=>××['minutes']=>××['id']=>××))Array([0]=>Array(['dakoku']=>○○['hour']=>○○['minutes']=>○○['id']=>○○)[1]=>Array(['dakoku']=>××['hour']=>××['minutes']=>××['id']=>××))
242
+
243
+
244
+
245
+ print_r($row['data'][0]);
246
+
247
+ // Array(['dakoku']=>○○['hour']=>○○['minutes']=>○○['id']=>○○)Array(['dakoku']=>○○['hour']=>○○['minutes']=>○○['id']=>○○)
248
+
249
+
250
+
251
+ print_r($row['data'][0]['dakoku']);
252
+
253
+ // Null(表示なし)
254
+
255
+
256
+
257
+
258
+
259
+ ```
260
+
261
+ たぶん、変なことしてるんだと思うのですが、、、、
262
+
263
+ 上記のようにいろいろやってみました。
264
+
265
+ 他にも、いろいろやってると、なんか表示されたりしてましたが、、、
266
+
267
+ 配列エラー?のようなものとか、、、、
268
+
269
+
270
+
271
+ forやforeachの動きから見ればと思ってこんな感じでやってしまいました。
272
+
273
+
274
+
275
+ どうも、値がヒットしないんですよね。。。

2

文字修正

2016/02/22 03:33

投稿

Z-TALBO
Z-TALBO

スコア525

test CHANGED
File without changes
test CHANGED
@@ -116,13 +116,13 @@
116
116
 
117
117
 
118
118
 
119
- $stmt->bindValue(1, $row[dakoku], PDO::PARAM_STR);
119
+ $stmt->bindValue(1, $row['dakoku'], PDO::PARAM_STR);
120
120
 
121
- $stmt->bindValue(2, $row[hour], PDO::PARAM_INT);
121
+ $stmt->bindValue(2, $row['hour'], PDO::PARAM_INT);
122
122
 
123
- $stmt->bindValue(3, $row[minutes], PDO::PARAM_INT);
123
+ $stmt->bindValue(3, $row['minutes'], PDO::PARAM_INT);
124
124
 
125
- $stmt->bindValue(4, $row[id], PDO::PARAM_INT);
125
+ $stmt->bindValue(4, $row['id'], PDO::PARAM_INT);
126
126
 
127
127
 
128
128
 

1

修正

2016/02/20 06:36

投稿

Z-TALBO
Z-TALBO

スコア525

test CHANGED
File without changes
test CHANGED
@@ -89,3 +89,69 @@
89
89
 
90
90
 
91
91
  ※例外処理等は省略しています。
92
+
93
+
94
+
95
+ -----------------------------------
96
+
97
+ [追記]
98
+
99
+ 回答者様に教えていただきましたコードにて変更を加えました。
100
+
101
+ ```PHP
102
+
103
+ try{
104
+
105
+ $dbh = new PDO(DSN, DB_USER, DB_PASSWORD);
106
+
107
+ $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
108
+
109
+ // 変更点
110
+
111
+ foreach($ary as $row) { // 質問上部で$ary = $_POST['data']としていたので、$aryでもいいのかと思い、、、
112
+
113
+ $stmt = $dbh->prepare(
114
+
115
+ "UPDATE dakokus SET dakoku = ?, hour = ?, minutes = ? WHERE id = ?");
116
+
117
+
118
+
119
+ $stmt->bindValue(1, $row[dakoku], PDO::PARAM_STR);
120
+
121
+ $stmt->bindValue(2, $row[hour], PDO::PARAM_INT);
122
+
123
+ $stmt->bindValue(3, $row[minutes], PDO::PARAM_INT);
124
+
125
+ $stmt->bindValue(4, $row[id], PDO::PARAM_INT);
126
+
127
+
128
+
129
+ $stmt->execute();
130
+
131
+ }
132
+
133
+ } catch(PDOException $e) {
134
+
135
+ echo $e->getMessage();
136
+
137
+ exit;
138
+
139
+ }
140
+
141
+
142
+
143
+ ```
144
+
145
+ 下記のようにコードを書き直してみました。
146
+
147
+ 結果なのですが、、、どうもUPDATEされておりません。。。
148
+
149
+ エラー的なものは表示されませんが、、、、
150
+
151
+ わからないのですが、print $ary . "/" . $row;のようにしてみると
152
+
153
+ ArrayArrayArray / Arrayと表示されました。
154
+
155
+
156
+
157
+ 使い方などが間違っているのかもしれません。。。ご指摘ください。