質問編集履歴

1

laravel

2019/05/04 08:21

投稿

sql
sql

スコア12

test CHANGED
@@ -1 +1 @@
1
- mysql縦持ちのデータを横持ちに入れ替える方法
1
+ mysql縦持ちのデータを横持ちに入れ替える方法*追記ありlaravel csv出力方法
test CHANGED
@@ -159,3 +159,143 @@
159
159
 
160
160
 
161
161
  ### 放り投げの質問になってしまって申し訳ありませんが、ご教授、ご対応できる方がいましたら急ぎではありませんのでご対応していただけるとありがたいです。よろしくお願いいたします。
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+ ###追記(2019/05/04)
170
+
171
+
172
+
173
+ `userテーブル`
174
+
175
+ |id|age|user_name|zip|address|
176
+
177
+ |:--|:--:|:--:|:--:|:--:|
178
+
179
+ |1|10|斎藤|111-1111|東京都サンプル区サンプル1-1-1|
180
+
181
+ |2|11|近藤|111-1111|東京都サンプル区サンプル1-1-1|
182
+
183
+ |3|12|大久保|111-1111|東京都サンプル区サンプル1-1-1|
184
+
185
+ |4|23|中田|111-1111|東京都サンプル区サンプル1-1-1|
186
+
187
+
188
+
189
+ `sampleテーブル`
190
+
191
+ |id|user_id|name|
192
+
193
+ |:--|:--:|:--:|
194
+
195
+ |1|1|サッカー|
196
+
197
+ |2|1|野球|
198
+
199
+ |3|1|陸上|
200
+
201
+ |4|2|野球|
202
+
203
+ |5|2|水泳|
204
+
205
+ |6|3|テニス|
206
+
207
+ |7|4|野球|
208
+
209
+ |8|4|陸上|
210
+
211
+
212
+
213
+
214
+
215
+ `csvでの出力`
216
+
217
+ |id|age|user_name|zip|address|`name1`|`name2`|`name3`|
218
+
219
+ |:--|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
220
+
221
+ |1|10|斎藤|111-1111|東京都サンプル区サンプル1-1-1|`サッカー`|`野球`|`陸上`|
222
+
223
+ |2|11|近藤|111-1111|東京都サンプル区サンプル1-1-1|`野球`|`水泳`||
224
+
225
+ |3|12|大久保|111-1111|東京都サンプル区サンプル1-1-1|`テニス`|||
226
+
227
+ |4|23|中田|111-1111|東京都サンプル区サンプル1-1-1|`野球`|`陸上`||
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+ # laravelで上記のようにcsvを出力させたいです。ご教授お願いいたします。
240
+
241
+
242
+
243
+ ```php
244
+
245
+ //ヘッダーを作成
246
+
247
+ $headers = ['id', 'age', 'user_name', 'zip', 'address'];
248
+
249
+ foreach ($headers as $header) {
250
+
251
+ $arr[0][] = $header;
252
+
253
+ }
254
+
255
+
256
+
257
+ //BODYを作成
258
+
259
+ $items = User::select('*')->get();
260
+
261
+ foreach ($items as $key => $item) {
262
+
263
+ $arr[$key + 1] = $item;
264
+
265
+ }
266
+
267
+
268
+
269
+ $fp = fopen('file.csv', 'w');
270
+
271
+
272
+
273
+ foreach ($arr as $fields) {
274
+
275
+ fputcsv($fp, $fields);
276
+
277
+ }
278
+
279
+
280
+
281
+ fclose($fp);
282
+
283
+ ```
284
+
285
+
286
+
287
+
288
+
289
+ `上記で出力されるcsv`
290
+
291
+ |id|age|user_name|zip|address|
292
+
293
+ |:--|:--:|:--:|:--:|:--:|
294
+
295
+ |1|10|斎藤|111-1111|東京都サンプル区サンプル1-1-1|
296
+
297
+ |2|11|近藤|111-1111|東京都サンプル区サンプル1-1-1|
298
+
299
+ |3|12|大久保|111-1111|東京都サンプル区サンプル1-1-1|
300
+
301
+ |4|23|中田|111-1111|東京都サンプル区サンプル1-1-1|