質問編集履歴
4
質問の編集2
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
jsonファイルのデータをPDOを使ってデータテーブルにINSERTした後、そのデータを取得し県ごとの市町村の数を表示したいのです
|
2
|
+
jsonファイルのデータをPDOを使ってデータテーブルにINSERTした後、そのデータを取得し県ごとの市町村の数を表示したいのです。
|
3
|
+
postcodeの先頭1-2文字目とprefecture_idがマッチしているようなので、マッチしていたら変数にcitycodeを代入して、代入された件数を数えるという処理を書いてみたのですが、件数がおかしくなります。どなたか解決方法ご存知でしょうか?
|
3
4
|
|
4
5
|
テーブル名 | カラム名 | json.file ( )内はjsonファイル内の対象の値を意味します
|
5
6
|
1. large_areaテーブル
|
3
質問を編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
1. large_areaテーブル
|
6
6
|
カラム名: name(エリア名は自分で入れました), prefecture_name(name), prefecture_id(id)
|
7
7
|
|
8
|
-
2. prefectureテーブル カラム名 : prefecture_id(id), name(name)
|
8
|
+
2. prefectureテーブル カラム名 : prefecture_id(id), name(name)
|
9
9
|
|
10
10
|
3. cityテーブル
|
11
11
|
カラム名:name(city.city) , citycode(city.citycode)
|
2
何がわからないかを具体的に記入しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
jsonファイルのデータをPDOを使ってデータテーブルにINSERTした後、そのデータを取得し県ごとの市町村の数を表示したいです。
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
2. prefecture : prefecture_id(
|
9
|
-
|
2
|
+
jsonファイルのデータをPDOを使ってデータテーブルにINSERTした後、そのデータを取得し県ごとの市町村の数を表示したいのですが、方法がわかりません。どなたか解決方法ご存知でしょうか?
|
3
|
+
|
4
|
+
テーブル名 | カラム名 | json.file ( )内はjsonファイル内の対象の値を意味します
|
5
|
+
1. large_areaテーブル
|
6
|
+
カラム名: name(エリア名は自分で入れました), prefecture_name(name), prefecture_id(id)
|
7
|
+
|
8
|
+
2. prefectureテーブル カラム名 : prefecture_id(id), name(name)
|
9
|
+
|
10
|
+
3. cityテーブル
|
11
|
+
カラム名:name(city.city) , citycode(city.citycode)
|
10
12
|
|
11
13
|
```json.file
|
12
14
|
[{
|
1
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
jsonファイルのデータ
|
2
|
+
jsonファイルのデータをPDOを使ってデータテーブルにINSERTした後、そのデータを取得し県ごとの市町村の数を表示したいです。
|
3
|
+
|
4
|
+
prefectureとcityテーブルからレコードを取得し、prefecture_idとcitycodeがマッチしているとcitycodeを変数($num_of_city)に代入する→count関数で市町村の数を取得、表示。とやってみたのですが、citycodeの件数が件ごとに多かったりに少なかったりします(北海道0件、青森から群馬県は7件、埼玉から長野は119件)。どなたか解決方法ご存知でしょうか?
|
3
5
|
|
4
6
|
[テーブル名:カラム名 : json.file]
|
5
7
|
1. large_area : name(エリア名は自分で入れました), prefecture_name('name), prefecture_id('id)
|
@@ -207,14 +209,12 @@
|
|
207
209
|
$dbh = new PDO($dsn, $user, $password);
|
208
210
|
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,] ;
|
209
211
|
print ('接続に成功しました。<br>');
|
210
|
-
print "<br>";
|
212
|
+
print "<br>";
|
211
|
-
|
212
213
|
|
213
214
|
foreach ($json as $key => $val) {
|
214
215
|
foreach($val as $key2 => $val2){
|
215
216
|
$name = $val2['name'];
|
216
|
-
$id = $val2['id'];
|
217
|
+
$id = $val2['id'];
|
217
|
-
|
218
218
|
|
219
219
|
$sql = "INSERT INTO prefecture (name, prefecture_id) VALUES (:prefecture_name, :id)";
|
220
220
|
$stmt = $dbh -> prepare($sql);
|
@@ -231,25 +231,20 @@
|
|
231
231
|
$res2 = $dbh -> query($sql6);
|
232
232
|
$data2 = $res2 -> fetchAll();
|
233
233
|
|
234
|
-
|
235
234
|
$num_of_city = [];
|
236
235
|
foreach($data1 as $prefecture_data){
|
237
236
|
echo $prefecture_data['name'] . "</br>";
|
238
237
|
echo "</br>";
|
239
238
|
foreach($data2 as $city_info){
|
240
239
|
if(substr($city_info['citycode'], 1, 2) == $prefecture_data['prefecture_id']){
|
241
|
-
$num_of_city = $city_info['citycode'];
|
240
|
+
$num_of_city [] = $city_info['citycode'];
|
242
241
|
}
|
243
242
|
}
|
244
243
|
echo count($num_of_city);
|
245
244
|
}
|
246
|
-
|
247
|
-
|
245
|
+
|
248
246
|
} catch (PDOException $e) {
|
249
247
|
print('エラーが発生しました:' . $e->getMessage());
|
250
248
|
die();
|
251
249
|
}
|
252
250
|
```
|
253
|
-
|
254
|
-
### 補足情報(FW/ツールのバージョンなど)
|
255
|
-
Docker上でデータベース構築しており、sequel proでMysqlにアクセスしてます
|